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

Re: Flat property lists

Stanford LISP 1.6  (which predates  "Standard" LISP)  used a-lists  for
instead of flat  property lists.   See the  manual by  Quam and  Diffie
(SAILON 28.7), section 3.1.

It was also mentioned a message or two ago that even in implementations
without cdr-coding  flat  property  lists are  more  efficient.   Would
someone explain to me why?   If we assume that  cars and cdrs cost  the
same and do not have flags (Stanford LISP 1.6 does not have flags) then
I see no difference in  cost.  And certainly the a-list  implementation
is a bit more perspicuous. There's  got to be a reason besides  inertia
why nearly all LISPs use flat property lists.  But in any case,  Common
LISP has no  business telling  implementers how  to implement  property
lists -- simply explain the semantics of PutProp, GetProp, and RemProp,
or whatever they end up being called and leave it to the implementer to
use a  flat  list, a-list,  hash-table,  or,  if he  insists,  a  flat,
randomly ordered list of triples.  It should make no difference to  the
Common LISP definition.