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.



Reply via email to