90 lines
5.7 KiB
HTML
90 lines
5.7 KiB
HTML
<!-- Common Lisp HyperSpec (TM), version 7.0 generated by Kent M. Pitman on Mon, 11-Apr-2005 2:31am EDT -->
|
|
<HTML>
|
|
<HEAD>
|
|
<TITLE>CLHS: Issue COERCING-SETF-NAME-TO-FUNCTION Writeup</TITLE>
|
|
<LINK HREF="../Data/clhs.css" REL="stylesheet" TYPE="text/css" />
|
|
<META HTTP-EQUIV="Author" CONTENT="Kent M. Pitman">
|
|
<META HTTP-EQUIV="Organization" CONTENT="LispWorks Ltd.">
|
|
<LINK REL=TOP HREF="../Front/index.htm">
|
|
<LINK REL=COPYRIGHT HREF="../Front/Help.htm#Legal">
|
|
<LINK REL=DISCLAIMER HREF="../Front/Help.htm#Disclaimer">
|
|
<LINK REL=PREV HREF="../Issues/iss053_w.htm">
|
|
<LINK REL=UP HREF="../Issues/iss054.htm">
|
|
<LINK REL=NEXT HREF="../Issues/iss055_w.htm">
|
|
</HEAD>
|
|
<BODY>
|
|
<H1><A REV=MADE HREF="http://www.lispworks.com/"><IMG WIDTH=80 HEIGHT=65 ALT="[LISPWORKS]" SRC="../Graphics/LWSmall.gif" ALIGN=Bottom></A><A REL=TOP HREF="../Front/index.htm"><IMG WIDTH=237 HEIGHT=65 ALT="[Common Lisp HyperSpec (TM)]" SRC="../Graphics/CLHS_Sm.gif" ALIGN=Bottom></A> <A REL=PREV HREF="../Issues/iss053_w.htm"><IMG WIDTH=40 HEIGHT=40 ALT="[Previous]" SRC="../Graphics/Prev.gif" ALIGN=Bottom></A><A REL=UP HREF="../Issues/iss054.htm"><IMG WIDTH=40 HEIGHT=40 ALT="[Up]" SRC="../Graphics/Up.gif" ALIGN=Bottom></A><A REL=NEXT HREF="../Issues/iss055_w.htm"><IMG WIDTH=40 HEIGHT=40 ALT="[Next]" SRC="../Graphics/Next.gif" ALIGN=Bottom></A></H1>
|
|
|
|
<HR>
|
|
|
|
|
|
|
|
<H2>Issue COERCING-SETF-NAME-TO-FUNCTION Writeup</H2>
|
|
|
|
<PRE><B>Issue:</B> <A HREF="iss054.htm">COERCING-SETF-NAME-TO-FUNCTION</A><P>
|
|
Reference: X3J13/92-102, dpANS 12.24<P>
|
|
<A REL=DEFINITION HREF="../Body/f_coerce.htm#coerce"><B>COERCE</B></A>, p.4-30..32<P>
|
|
X3J13/89-520, Issue <A HREF="iss174.htm">FUNCTION-NAME</A><P>
|
|
X3J13/88-413, Issue <A HREF="iss175_m.htm">FUNCTION-TYPE</A><P>
|
|
X3J13/92-3101, Kim Barrett comment #1<P>
|
|
<B>Category:</B> ADDITION<P>
|
|
<B>Edit History:</B> Version 1, 06/15/91, Kim Barrett<P>
|
|
Version 2, 06/22/91, Kim Barrett (summarize discussion)<P>
|
|
Version 3, 01/06/93, Kim Barrett (update references)<P>
|
|
Version 4, 01/06/93, Kim Barrett (name the proposal)<P>
|
|
<B>Status:</B> Proposal ALL-FUNCTION-NAMES accepted, Mar 1993<P>
|
|
<P>
|
|
<B>Problem Description:<P>
|
|
</B><P>
|
|
<A REL=DEFINITION HREF="../Body/f_coerce.htm#coerce"><B>COERCE</B></A> doesn't currently <A REL=DEFINITION HREF="../Body/f_provid.htm#provide"><B>provide</B></A> a means of converting a <A REL=DEFINITION HREF="../Body/a_setf.htm#setf"><B>SETF</B></A> function name to<P>
|
|
a function object, as it does for functions named by symbols. <A HREF="iss175_m.htm">FUNCTION-TYPE</A><P>
|
|
was written too early to cover this, and <A HREF="iss174.htm">FUNCTION-NAME</A> didn't correct it.<P>
|
|
<P>
|
|
<B>Proposal (COERCING-SETF-NAME-TO-FUNCTION:ALL-FUNCTION-NAMES):<P>
|
|
</B><P>
|
|
Change the argument permitted by <A REL=DEFINITION HREF="../Body/f_coerce.htm#coerce"><B>COERCE</B></A> when the type argument is <A REL=DEFINITION HREF="../Body/a_fn.htm#function"><B>FUNCTION</B></A> to<P>
|
|
treat all function names as it currently treats symbols. The following change<P>
|
|
to the 12.24 draft is required:<P>
|
|
<P>
|
|
In the description of the <A REL=DEFINITION HREF="../Body/f_coerce.htm#coerce"><B>COERCE</B></A> function, the first paragraph of the section<P>
|
|
for the <A REL=DEFINITION HREF="../Body/a_fn.htm#function"><B>FUNCTION</B></A> result-type (p.4-31) says:<P>
|
|
<P>
|
|
If the \param{result-type} is \typeref{function},<P>
|
|
and \param{object} is any \term{symbol} that is \term{fbound} <P>
|
|
but that is globally defined neither as a \term{macro name} nor as<P>
|
|
a \term{special operator}, then the \param{result} is the<P>
|
|
\term{functional value} of \param{object}.<P>
|
|
<P>
|
|
Change the occurance of the term \term{symbol} to instead be<P>
|
|
\term{function name}, so that the sentence reads:<P>
|
|
<P>
|
|
If the \param{result-type} is \typeref{function},<P>
|
|
and \param{object} is any \term{function name} that is \term{fbound} <P>
|
|
but that is globally defined neither as a \term{macro name} nor as<P>
|
|
a \term{special operator}, then the \param{result} is the<P>
|
|
\term{functional value} of \param{object}.<P>
|
|
<P>
|
|
<B>Editorial Impact:<P>
|
|
</B><P>
|
|
Single term change.<P>
|
|
<P>
|
|
<B>Rationale:<P>
|
|
</B><P>
|
|
This corrects an apparent oversight in the <A HREF="iss174.htm">FUNCTION-NAME</A> proposal.<P>
|
|
<P>
|
|
<B>Discussion:<P>
|
|
</B><P>
|
|
Moon and others feel that (<A REL=DEFINITION HREF="../Body/f_coerce.htm#coerce"><B>COERCE</B></A> symbol '<A REL=DEFINITION HREF="../Body/a_fn.htm#function"><B>FUNCTION</B></A>) is questionable, but that<P>
|
|
it would be better to make a small upwardly compatible change for consistancy<P>
|
|
rather than leaving things inconsistant, and that even worse would be the now<P>
|
|
incompatible change involved in the removal of the coercion of symbols to<P>
|
|
functions.<P>
|
|
<P>
|
|
</PRE>
|
|
<HR>
|
|
|
|
<A REL=NAVIGATOR HREF="../Front/StartPts.htm"><IMG WIDTH=80 HEIGHT=40 ALT="[Starting Points]" SRC="../Graphics/StartPts.gif" ALIGN=Bottom></A><A REL=TOC HREF="../Front/Contents.htm"><IMG WIDTH=80 HEIGHT=40 ALT="[Contents]" SRC="../Graphics/Contents.gif" ALIGN=Bottom></A><A REL=INDEX HREF="../Front/X_Master.htm"><IMG WIDTH=80 HEIGHT=40 ALT="[Index]" SRC="../Graphics/Index.gif" ALIGN=Bottom></A><A REL=INDEX HREF="../Front/X_Symbol.htm"><IMG WIDTH=80 HEIGHT=40 ALT="[Symbols]" SRC="../Graphics/Symbols.gif" ALIGN=Bottom></A><A REL=GLOSSARY HREF="../Body/26_a.htm"><IMG WIDTH=80 HEIGHT=40 ALT="[Glossary]" SRC="../Graphics/Glossary.gif" ALIGN=Bottom></A><A HREF="../Front/X3J13Iss.htm"><IMG WIDTH=80 HEIGHT=40 ALT="[Issues]" SRC="../Graphics/Issues.gif" ALIGN=Bottom></A><BR>
|
|
|
|
<A REL=COPYRIGHT HREF="../Front/Help.htm#Legal"><I>Copyright 1996-2005, LispWorks Ltd. All rights reserved.</I></A><P>
|
|
</BODY>
|
|
</HTML>
|