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

Re: Symbol-function

  I would contend that any Lisp object may be the value in a setf of
  (symbol-function <symbol>), and that a subsequent invocation of
  (symbol-function <symbol>) should retrieve exactly that object (or one
  EQL to it).  However, this does not prevent implementations from
  wrapping that object in a closure internally on storing and unwrapping
  it again on fetching.

This seems right to me.  What is not stated in CTtL is whether
an implementation has the right to check what is being put in 
there and cause an error at storage time.

  As far as allowing a lambda as the function cell, CLtL states that an
  implementation is at liberty to always compile its code.  If the lambda must
  be left in its original state, then the implementation has to compile every
  time a function is called, rather than when one is defined!
  John Diamant

The hidden wrapping mentioned earlier (or an implicit wrapping through
a hash link from the expression) both allow first time compilation rather 
than every time.