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


Issue COERCING-SETF-NAME-TO-FUNCTION Writeup

Issue:          COERCING-SETF-NAME-TO-FUNCTION

Reference: X3J13/92-102, dpANS 12.24

COERCE, p.4-30..32

X3J13/89-520, Issue FUNCTION-NAME

X3J13/88-413, Issue FUNCTION-TYPE

X3J13/92-3101, Kim Barrett comment #1

Category: ADDITION

Edit History: Version 1, 06/15/91, Kim Barrett

Version 2, 06/22/91, Kim Barrett (summarize discussion)

Version 3, 01/06/93, Kim Barrett (update references)

Version 4, 01/06/93, Kim Barrett (name the proposal)

Status: Proposal ALL-FUNCTION-NAMES accepted, Mar 1993

Problem Description:

COERCE doesn't currently provide a means of converting a SETF function name to

a function object, as it does for functions named by symbols. FUNCTION-TYPE

was written too early to cover this, and FUNCTION-NAME didn't correct it.

Proposal (COERCING-SETF-NAME-TO-FUNCTION:ALL-FUNCTION-NAMES):

Change the argument permitted by COERCE when the type argument is FUNCTION to

treat all function names as it currently treats symbols. The following change

to the 12.24 draft is required:

In the description of the COERCE function, the first paragraph of the section

for the FUNCTION result-type (p.4-31) says:

If the \param{result-type} is \typeref{function},

and \param{object} is any \term{symbol} that is \term{fbound}

but that is globally defined neither as a \term{macro name} nor as

a \term{special operator}, then the \param{result} is the

\term{functional value} of \param{object}.

Change the occurance of the term \term{symbol} to instead be

\term{function name}, so that the sentence reads:

If the \param{result-type} is \typeref{function},

and \param{object} is any \term{function name} that is \term{fbound}

but that is globally defined neither as a \term{macro name} nor as

a \term{special operator}, then the \param{result} is the

\term{functional value} of \param{object}.

Editorial Impact:

Single term change.

Rationale:

This corrects an apparent oversight in the FUNCTION-NAME proposal.

Discussion:

Moon and others feel that (COERCE symbol 'FUNCTION) is questionable, but that

it would be better to make a small upwardly compatible change for consistancy

rather than leaving things inconsistant, and that even worse would be the now

incompatible change involved in the removal of the coercion of symbols to

functions.


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