[net.lang.lisp] Putprop

djz@cmu-cs-spice.ARPA (Daniel Zigmond) (06/06/85)

In a compatibility note on page 165 of Common Lisp: the Language, Guy
Steele writes:

"...What MacLisp and InterLisp call puprop is accomplished in Common Lisp by
using get with setf."

However, because setf is a macro, all Common Lisps must have some form of
putprop (or put).  In Spice Lisp, (macroexpand '(setf (get 'a 'b) 'c) returns
something like:

(let ((g1 'a) ;the numbers vary, of course.
      (g2 'b)
      (g4 'c))
     (%put g1 g2 g4)) 

So although Common Lisp does not directly support putprop, it is still
essential (as was pointed out by someone in a previous message) to have
something like putprop for the setf with get to expand into.

	Dan Zigmond

barmar@mit-eddie.UUCP (Barry Margolin) (06/06/85)

OK, I stand partially corrected on the setf vs putprop issue, thank you.
Yes, a Common Lisp must have something analogous to putprop, if only for
the setf to expand into.  However, Winston & Horn were correct in
describing setf rather than this function, as setf is the construct
reccommended by Steele in the CL spec.
-- 
    Barry Margolin
    ARPA: barmar@MIT-Multics
    UUCP: ..!genrad!mit-eddie!barmar