From: Raffael C. <raf...@ma...> - 2005-03-26 17:03:25
|
On Mar 26, 2005, at 9:05 AM, Friedrich Dominicus wrote: > Well as > understand this should be the same as ::isbn it's not that a " " is > between the | and well according to LW this is interpreted as such Just to be completely clear on this Friedrich, please note that Nikodemus and Brian have been talking about the empty string, *not* a space. In your email quoted above, you're talking about a space, *not* the empty string. They are telling you that there is no requirement for an implementation to behave as if the empty string is a nickname for the keyword package. All the implementations you quote clearly have readers that treat the empty string as if it were a nickname for the keyword package, so that ::foo is read as keyword::foo, but they are saying that there is no guarantee in the standard that the keyword package have the empty string as a nickname, so there is no requirement for implementations to read ::foo as if it were keyword::foo. Please not that I am not sufficiently familiar with the reader algorithm as given in the standard to have any worthwhile opinion on this matter myself. To see what is going on here is a simple transcript from LispWorks: CL-USER 11 > (macroexpand keyword::foo) :FOO NIL CL-USER 12 > (macroexpand ::foo) :FOO NIL Interestingly, LispWorks claims that the keyword package has *no* nicknames: CL-USER 20 > (package-nicknames 'keyword) NIL Ditto OpenMCL So technically, this behavior is not due to the keyword package having "" as a nickname (because the keyword package has no nicknames in LispWorks, ditto OpenMCL). Rather, this behavior must be hard coded into their readers. regards, Ralph Raffael Cavallaro, Ph.D. raf...@ma... |