Graham Fawcett wrote:

Try this instead:

(define-macro (eval-with-locals locals expr)
 `((eval (list 'lambda ',locals ,expr)) ,@locals))

Example:

(define z 1000)
(let ((x 10)
     (y 100)
     (expr '(+ x y z)))
 (eval-with-locals (x y) expr))
==> 1110

Cool!  It's amazing how much is possible in Scheme.

--
Chicken Monk
"God loves ya. And she loves me too."



_______________________________________________
Chicken-users mailing list
Chicken-users@nongnu.org
http://lists.nongnu.org/mailman/listinfo/chicken-users

Reply via email to