Path: utzoo!attcan!uunet!husc6!bbn!uwmcsd1!mailrus!ames!pasteur!ucbvax!snooze.UUCP!layer
From: layer@snooze.UUCP (Kevin Layer)
Newsgroups: comp.lang.lisp
Subject: re: LISP PROBLEM
Message-ID: <8808180024.AA07369@snooze>
Date: 18 Aug 88 00:23:59 GMT
Sender: daemon@ucbvax.BERKELEY.EDU
Lines: 26


    Article 1137 of 1140, Wed 14:04.
    Subject: LISP PROBLEM
    From: yushen@deimos.ads.com (Yu-shen Ng)
    Organization: Advanced Decision Systems, Mt. View, CA (415) 960-7300

    (eval form) normally evaluates "form" in a null lexical scope.

    How can I do an "eval" within the lexical scope from which the
    "eval" is called?

In Allegro CL you can use excl::%eval.  For example,

    user-7> (defun test ()
	      (let ((form '(format t "foo ~s~%" a))
		    (a 10))
		(excl::%eval form)))

    test 
    user-8> (test)
    foo 10

    nil 
    user-9> 

-Kevin