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

fsymeval before arg-eval?

When eval gets a call to a function,
is the definition that is used gotten out of the symbol
before the args are evaled or afterwords?
Since eval has to first figure out if the car of the form is
a macro, special-form or regular function before it can know what
to do with the args, it makes sense that it gets the def before
arg evaluation. But I haven't found a reference to this in the spec.

A case where this would matter is:
(defun foo (x) 1)
(foo (defun foo (x) 2)) => 1 or 2 ?

A particularly pathological case would be:
(defun foo (x) 1)
(foo (defmacro foo (x) 2))