From: Pascal J. B. <pj...@in...> - 2014-06-14 14:02:05
|
Stas Boukarev <sta...@gm...> writes: > "Pascal J. Bourguignon" <pj...@in...> writes: > >> Stas Boukarev <sta...@gm...> writes: >> >>> "Pascal J. Bourguignon" <pj...@in...> writes: >>> >>>> Douglas Katzman <do...@go...> writes: >>>> >>>>> The description allows STRING not to allocate in the case of symbol >>>>> or string input, so it seems to me that (string #\Newline) should not >>>>> require a "#." in front of it in user code to obtain a constant >>>>> string of one newline. >>>>> And if through macroexpansion we end up with (string 'foo) this >>>>> should be folded to "FOO". >>>>> >>>>> Sound ok? >>>>> >>>>> Description: >>>>> >>>>> Returns a string described by x; specifically: >>>>> >>>>> If x is a string, it is returned. >>>>> If x is a symbol, its name is returned. >>>>> If x is a character, then a string containing that one character >>>>> is returned. >>>>> string might perform additional, implementation-defined >>>>> conversions. >>>> >>>> It doesn't say a "fresh" string containing that one character is >>>> returned. >>>> >>>> (string #\a) could be compiled as "a", since a CL compiler can open code >>>> any CL function. >>>> >>>> By the same token (string (the character x)) could be compiled as >>>> (gethash x *all-single-character-strings*), if the implementation deemed >>>> it worthwhile to do. >>> Is there a passage mandating the usage of the term "fresh"? >>> Because the entry for the LIST function doesn't mention freshness. >> >> List could be implemented as: >> >> (defun list (&rest list) list) > Where does it say that it can be implemented in such a way? In the dictionary, under the definition of "could", vs. "have to". -- __Pascal Bourguignon__ http://www.informatimago.com/ "Le mercure monte ? C'est le moment d'acheter !" |