summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--module/ice-9/eval.scm6
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)