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