diff options
-rw-r--r-- | module/ice-9/eval.scm | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/module/ice-9/eval.scm b/module/ice-9/eval.scm index f7cb6ce3e..e38f2df67 100644 --- a/module/ice-9/eval.scm +++ b/module/ice-9/eval.scm @@ -307,7 +307,11 @@ (('with-fluids (fluids vals . exp)) (let* ((fluids (map (lambda (x) (eval x env)) fluids)) (vals (map (lambda (x) (eval x env)) vals))) - (with-fluids* fluids vals (lambda () (eval exp env))))) + (let lp ((fluids fluids) (vals vals)) + (if (null? fluids) + (eval exp env) + (with-fluids (((car fluids) (car vals))) + (lp (cdr fluids) (cdr vals))))))) (('prompt (tag exp . handler)) (@prompt (eval tag env) |