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

[no subject]

From:     Date:
Date: Thu, 12 Jan 79 19:20:21 GMT
Original-Date: 12/01/79 15:20:21 EDT
    From: EB at MIT-ML
    To:   (BUG LISP) at MIT-ML

    Are the following supposed to work differently in the interpreter
    and compiler, as they do?

    (defun f macro (m)
       (cond ((eq (cadr m) '+) 'plus)
    	 ((eq (cadr m) '-) 'difference)
    	 (t (error))))

    (defun foo+ (x y) ((f +) x y))

    (defun foo- (x y) ((f -) x y))

    In the Interpreter, PLUS or DIFFERENCE is an unbound variable.  In
    the compiler, the function PLUS or DIFFERENCE is JCALLed, or
    so the LAP claims.
This is indeed not supported in the interpreter.  No plans to change it exist.
NIL will probably support it, but I'm not convinced it's a win.