This page is part of the web mail archives of SRFI 108 from before July 7th, 2015. The new archives for SRFI 108 contain all messages, not just those from before July 7th, 2015.
On 12/29/2012 07:22 PM, John Cowan wrote:
Per Bothner scripsit:There is a seeming ambiguity, since in Scheme the character '&' is a valid symbol character. However, a symbol followed immediately by either '{' or '[' is not defined by standard Scheme, so this is a conflict-free extension.Unfortunately, &condition[car '(a b c)] is perfectly well-defined R6RS lexical syntax, where [] means the same as () and symbols beginning with ampersands are actually standard for names of condition types. I don't say it should be that way, but it is.
Technically, it's well-defined R6RS lexical syntax, but it would be horrible style. First, people would normally put a space before the '['. Secondly, I don't see '[...]' used much except for "clauses" (rather than expressions), and if '[...]' is used only for such clauses (as I see in the Racket documentation) that doesn't seem like it would conflict.
§ion{News as of &(current-date)}This being, I presume, shorthand for §ion{News as of &[(current-date)]}.
Correct.
+ Kawa has this syntax for a vector constructor: [e1 e2 ... en] This is the same as `#(,e1 ,e2 ... ,en), which is the same as (vector e1 e2 .. en) except producing an immutable vector.More to the point, the last is code, whereas the first two are lexical syntax and therefore work in data. I think it's important to always keep the data applications firmly in mind. [LATER] Hmm, it seems I was wrong. [a b c] complains of undefined variables, so it really is (vector a b c), whereas #(a b c) is indeed lexical syntax.
Right - the e1 ... en are (in Kawa) expressions that are evaluated. And `#(,e1 ,e2 ... ,en) is *not* lexical syntax that works in data. At least not in any meaningful sense. (The reader does return a form, just like it does for [e1 e2 ... en], but it doesn't seem useful except in expression context.) -- --Per Bothner per@xxxxxxxxxxx http://per.bothner.com/