In article <·····················@cs.cornell.edu> ·····@cs.cornell.edu (T. V. Raman) writes:
Lucid seems to behave in an unexpected way if you
1) First compile a function that calls a macro
and then
Macros are expanded rather than called. If the macro were defined, it
would be expanded at compile time and future changes to the macro
definition should not affect the compiled function object.
2) Compile the macro.
. . .
USER> (defun foo ()
(moo))
FOO
USER> (compile 'foo)
;;; Warning: The following function is not known to be defined:
;;; MOO was referenced by FOO
FOO
Note that the compiler warning indicates that MOO is assumed to be an
undefined function, not a macro.
USER> (defmacro moo()
`(print 'foo))
MOO
Now MOO is defined as a macro and FOO appears to be invoking the macro
expansion function which expects two arguments, a form and an
environment.
--
Rick Busdiecker <····@cs.cmu.edu>
``Beware of programmers carrying screwdrivers''
- Unknown