[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

EVAL



    Date: Wed, 26 Nov 86 00:24:12 EST
    From: Alan Bawden <ALAN@AI.AI.MIT.EDU>
    
        Date: Tue, 25 Nov 86 02:36 est
        From: mike%acorn at mit-live-oak.arpa
            Date: Sat, 22 Nov 86 17:32 EST
            From: Alan Bawden <Alan@AI.AI.MIT.EDU>
    	...  This demonstrates that LEXICAL-EVAL would have to be a new
    	special form, rather than simply a function.
        This same issue seems to come up over and over. Will someone tell
        me what is wrong with the following argument:...
    
    I'm not quite sure what your proposed source transformation was supposed to
    demonstrate.  How do you compile
    
      (defun bind-x-then-call-f (x f)
        (funcall f `(cons x x)))
    
    given that anyone can do
    
      (bind-x-then-call-f 'foo #'lexical-eval)?
    

I just write

(defun bind-x-then-call-f (x f)
   (eval `(funcall ,f '(cons ,x ,x)))

and do this 

  (bind-x-then-call-f 'foo #'eval) 

instead, which is to say I don't bother compiling it at all.
I see no difference semantically here. Is there a 
tougher example, possibly involving closures?


... mike beckerle.