diff --git a/lib/srfi/139.scm b/lib/srfi/139.scm index f744c105..3fad4fd0 100644 --- a/lib/srfi/139.scm +++ b/lib/srfi/139.scm @@ -5,28 +5,28 @@ (car (cdr expr))))) (%define-syntax syntax-parameterize - (lambda (expr use-env mac-env) - (let* ((_let (make-syntactic-closure mac-env '() 'let)) - (_set! (make-syntactic-closure mac-env '() 'set!)) - (_out (make-syntactic-closure mac-env '() 'out)) - (_tmp (make-syntactic-closure mac-env '() 'tmp)) - (bindings (cadr expr)) - (body (cddr expr)) - (keywords (map car bindings)) - (transformers (map cadr bindings)) - (cells - (map (lambda (keyword) - (env-cell use-env keyword)) - keywords)) - (old (map cdr cells)) - (new (map (lambda (transformer) - (make-macro - (make-transformer - (eval - (make-syntactic-closure use-env '() transformer))) - use-env)) - transformers))) - (for-each set-cdr! cells new) - `(,_let ((,_tmp #f)) - (,_set! ,_tmp (,_let () ,@body)) - (,_out ,_tmp ,cells ,old))))) + (lambda (expr use-env mac-env) + (let* ((_let (make-syntactic-closure mac-env '() 'let)) + (_set! (make-syntactic-closure mac-env '() 'set!)) + (_out (make-syntactic-closure mac-env '() 'out)) + (_tmp (make-syntactic-closure mac-env '() 'tmp)) + (bindings (cadr expr)) + (body (cddr expr)) + (keywords (map car bindings)) + (transformers (map cadr bindings)) + (cells + (map (lambda (keyword) + (env-cell use-env keyword)) + keywords)) + (old (map cdr cells)) + (new (map (lambda (transformer) + (make-macro + (make-transformer + (eval + (make-syntactic-closure use-env '() transformer))) + use-env)) + transformers))) + (for-each set-cdr! cells new) + `(,_let ((,_tmp #f)) + (,_set! ,_tmp (,_let () ,@body)) + (,_out ,_tmp ,cells ,old)))))