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

Re: function cells



Lisp 1.5 stored function definitions on the property list.  To my
knowledge, the first Lisp that used an independent function cell was the
PDP-1 implementation of BBN-Lisp, the precursor of Interlisp.  Dan
Bobrow may be able to confirm or add details.  This would have been
around 1965.  He and I were the principal architects of this system; I
would trust his word about who invented what.  You may find other
interesting historical information in the Information International Inc.
Lisp system book, edited by Edmund C. Berkeley and also published
sometime around 1965.  It doesn't describe BBN-Lisp, but it describes
some other systems, and one of them may have function cells -- I don't
really remember.

I don't know what alternatives you want a justification with respect to.
The changeover from property list representation was primarily for
efficiency.  The distinction between "function context" and "variable
context" for interpreting names was a bad idea inherited from Lisp 1.5:
it was retained for a very long time because doing free variable lookups
for every function name (which are normally only bound at the top level)
would have been atrociously slow.  It was only with the invention of
shallow binding that people started to look seriously at re-merging
function and variable binding.