From 439bda440d211856102a594bea1c942c036e2aef Mon Sep 17 00:00:00 2001 From: Justin Ethier Date: Sat, 2 Jul 2016 00:13:50 -0400 Subject: [PATCH] WIP --- scheme/base.sld | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/scheme/base.sld b/scheme/base.sld index d0fe7651..6b19b3de 100644 --- a/scheme/base.sld +++ b/scheme/base.sld @@ -843,6 +843,38 @@ fill))) (list->string (apply make-list (cons k fill*))))) + ;(define-syntax parameterize + ; (syntax-rules () + ; ((parameterize + ; ("step") + ; ((param value p old new) ...) + ; () + ; body) + ; (let ((p param) ...) + ; (let ((old (p)) + ; ... + ; (new ((p ) value)) + ; ...) + ; (dynamic-wind + ; (lambda () (p new) ...) + ; (lambda () . body) + ; (lambda () (p old) ...))))) + ; ((parameterize + ; ("step") + ; args + ; ((param value) . rest) + ; body) + ; (parameterize + ; ("step") + ; ((param value p old new) . args) + ; rest + ; body)) + ; ((parameterize ((param value) ...) . body) + ; (parameterize + ; ("step") + ; () + ; ((param value) ...) + ; body)))) (define (make-parameter init . o) (let* ((converter (if (pair? o) (car o) (lambda (x) x))) @@ -856,7 +888,7 @@ ((eq? (car args) ') converter) (else - (error "bad parameter syntax")))))) + (error "bad parameter syntax" args)))))) (define current-output-port (make-parameter (Cyc-stdout))) (define current-input-port