Sorry if the following is common knowledge in this list:
guile> (vector (+ 1 2))
#(3)
guile> '#((+ 1 2))
#((+ 1 2))
guile> #((+ 1 2))
#((+ 1 2)) <--- Oops?
I don't exactly know, how to interpret R5RS on the subject: it says,
> Vectors are written using the notation #(obj ...). For example, a vector
> of length 3 containing the number zero in element 0, the list `(2 2
> 2 2)' in element 1, and the string `"Anna"' in element 2 can be written
> as following:
>
>
> #(0 (2 2 2 2) "Anna")
>
>
> Note that this is the external representation of a vector, not an
> expression evaluating to a vector. Like list constants, vector constants
> must be quoted:
>
>
> '#(0 (2 2 2 2) "Anna")
> ==> #(0 (2 2 2 2) "Anna")
This can be interpreted (but I don't think so), that is is illegal to use
the #-syntax without quoting. In this case my example above doesn't
describe something legal and guile's behaviour is conforming (although it
should give a warning).
In my interpretation, it might also be legal to use #-syntax without
quoting, but in this case the arguments should be evaluated. This would
mean that guile's behaviour is incorrect.
Best regards,
Dirk Herrmann
--
This message is best viewed with ISO 8859/1 (latin-1) character encoding.
Microsoft .. what do you want to boot today?