vectors parsed incorrectly...

Dirk Herrmann (dirk@ida.ing.tu-bs.de)
Tue, 23 Jun 1998 16:19:23 +0200 (CEST)

Hello everybody,

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?