[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Keith Price <price@usc.edu>: &Rest failure]
- To: flatau@CLI.COM (Arthur D. Flatau)
- Subject: [Keith Price <price@usc.edu>: &Rest failure]
- From: grisius@ALDERAAN.SCRC.Symbolics.COM (Matthew A. Grisius)
- Date: Wed, 8 May 1991 16:17:00 -0400
- Cc: price@usc.edu, slug@ai.sri.com
- Character-type-mappings: (1 0 (NIL 0) (SAGE:SANS-SERIF-BODY :BOLD :NORMAL) "HL12B") (2 0 (NIL 0) (SAGE:SANS-SERIF-BODY :ROMAN :NORMAL) "HL12") (3 0 (NIL 0) (:DEVICE-FONT FONTS:HL12 :NORMAL) "HL12") (4 0 (NIL 0) (SAGE:SANS-SERIF-BODY :ITALIC :NORMAL) "HL12I") (5 0 (NIL 0) (SAGE:SANS-SERIF-BODY SYMBOL :NORMAL) "SYMBOL12") (6 0 (NIL 0) (SAGE:SANS-SERIF-BODY SAGE::MATH :NORMAL) "MATH12") (7 0 (NIL 0) (SAGE:SANS-SERIF-BODY SAGE::LISP :NORMAL) "HL12B")
- Fcc: FP:>grisius>mail>out-going.babyl.newest
- Fonts: CPTFONT, HL12B, HL12, HL12, HL12I, SYMBOL12, MATH12, HL12B
- In-reply-to: <9105081852.AA02197@decaf.CLI.COM>
Date: Wed, 8 May 91 13:52:35 CDT
From: flatau@CLI.COM (Arthur D. Flatau)
Sure the behavior makes sense. I don't know where it says this,
but...
in the Document examiner do a "Show Candidates &rest"
select 1Other Incompatible Differences
0 2Some functions, macros, and objects in Symbolics Common Lisp (SCL)
0 2have implementation specification that are incompatible with Com-
0 2mon3 2Lisp, as specified in 4Common Lisp: The Language2 (4CLtL2).
0 2The following is a list of implementation specifications made in SCL,
0 2which are incompatible with Common Lisp, as specified in 4CLtL2.
0 2Each item in this list includes a reference to the section in 4CLtL2 that
0 2discusses the topic.3
0 5o2 0 2The argument list for6 7&rest2 parameters has dynamic extent.
0 2Furthermore, the list of arguments should not be modified destruc-
0 2tively3 2with the 7rplaca2 or 7rplacd2 functions.3 2If you want to save3 2or
0 2return an 7&rest2 argument, use the 7copy-list2 function first.3 2See
0 2the lambda list keyword 7&rest2.3 2See 4CLtL2: Section 5.2.2, Lambda
0 2Expressions.
0 [...]
or
select 1Safety of 7&rest1 Arguments
0 2It is important to realize that the list of arguments to which a3 2rest-
0 2parameter is bound is set up in whatever way is most efficiently3 2im-
0 2plemented, rather than in the way that is most convenient for the
0 2function receiving the arguments.3 2It is not guaranteed to be a "real"
0 2list.3 2Sometimes the rest-args list is stored in the function-calling
0 2stack, and loses its validity when the function returns.3 2If a3 2rest-
0 2argument is to be returned or made part of permanent3 2list-structure,
0 2it must first be copied, as you must always assume that3 2it is one of
0 2these special lists.3 2See the function 7copy-list2.
0 2The system does not detect the error of omitting to copy a3 2rest-
0 2argument; you simply find that you have a value that seems to
0 2change behind your back.3 2At other times the rest-args list is an3 2argu-
0 2ment that was given to 7apply2; therefore it is not safe to3 7rplaca2 this
0 2list, as you might modify permanent data structure.3 2An3 2attempt to
0 7rplacd2 a rest-args list is unsafe in this case, while in3 2the first case
0 2it signals an error, since lists in the stack are3 2impossible to 7rplacd2.3
0[...]