This is the mail archive of the guile@cygnus.com mailing list for the guile project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

vectors parsed incorrectly...


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?