[LISPWORKS][Common Lisp HyperSpec (TM)] [Previous][Up][Next]


Issue SETF-APPLY-EXPANSION Writeup

Status:       Proposal IGNORE-EXPANDER passed 12/91

Issue: SETF-APPLY-EXPANSION

Reference: CLtL-II, p.127

Draft 10.156, p.5-10

Category: CHANGE

Edit History: Version 1, 12-Dec-91, Kim Barrett

Problem Description:

In Draft 10.156, the description of a call to APPLY as a place for SETF does

not include some text from CLtL. Specifically, the draft says that for a

user-defined function,

(SETF (APPLY #'name a1 a2 ...) v1)

is equivalent to

(APPLY #'(SETF name) v1 a1 a2 ...)

except that the proper left-to-right evaluation order is maintained. Instead

of this, CLtL talks about APPLY as a place in terms of the expander for the

function name as a place, saying that the last argument to the store form must

be the same as the last argument of the access call.

Proposal (SETF-APPLY-EXPANSION:IGNORE-EXPANDER):

Affirm the draft text, eliminating the mechanism prescribed by CLtL for

handling APPLY as a place for SETF.

Editorial impact:

None. This affirms the wording in the draft.

Rationale:

Implementation of the mechanism described in CLtL places some unmentioned

requirements on the SETF expander of functions that will be used with SETF of

APPLY. Some people consider the whole mechanism an ugly and unreliable hack.


[Starting Points][Contents][Index][Symbols][Glossary][Issues]
Copyright 1996-2005, LispWorks Ltd. All rights reserved.