diff --git a/scmvm/language/scheme.scm b/scmvm/language/scheme.scm index 4a7e982..5999e7a 100644 --- a/scmvm/language/scheme.scm +++ b/scmvm/language/scheme.scm @@ -227,12 +227,10 @@ `(set-then! ,var ,$expr ,(k undefined-value))))] [(f e* ...) (let* ([$rv (gensym "$rv-")] - [cont `(lambda (,$rv) ,(k $rv))]) - (T-k f - (lambda ($f) - (T*-k e* - (lambda ($e*) - `(,$f ,@$e* ,cont))))))])) + [$k (gensym "$k-")]) + (T-k f (lambda ($f) + (T*-k e* (lambda ($e*) + (k `((lambda (,$k) (,$f ,@$e* ,$k)) (lambda (,$rv) ,$rv))))))))])) ;; (expr* * (aexp* -> cexp) -> cexp) (define (T*-k v* k)