Adam Warner <[EMAIL PROTECTED]> writes: > In: defun-grab plus1 > (defun-grab plus1 (number) (1+ number)) > --> progn eval-when defparameter progn > ==> > (setq plus1 '(defun plus1 (number) (1+ number))) > Warning: Undefined variable: plus1
I think this from CLHS might be relevant: defparameter and defvar normally appear as a top level form, but it is meaningful for them to appear as non-top-level forms. However, the compile-time side effects described below only take place when they appear as top level forms. [...] Side Effects: If a defvar or defparameter form appears as a top level form, the compiler must recognize that the name has been proclaimed special. However, it must neither evaluate the initial-value form nor assign the dynamic variable named name at compile time. There may be additional (implementation-defined) compile-time or run-time side effects, as long as such effects do not interfere with the correct operation of conforming programs.
