Jean Abou Samra <j...@abou-samra.fr> writes: > Le jeudi 29 juin 2023 à 17:56 +0200, David Kastrup a écrit : > >> No, none of the "standards" say anything like that. #(...) is a >> self-quoting form, like #t and #f and numbers and strings and some other >> things. Quoting them doesn't change a thing. >> >> And to be honest, I don't know of any _convention_ that would recommend >> explicitly quoting them or other self-quoting forms, either. > > > > R5RS 6.3.6 page 31 < > https://conservatory.scheme.org/schemers/Documents/Standards/R5RS/r5rs.pdf > > > 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")
Ok, but at the same time R5RS states: #( This introduces a vector constant (section *note Vectors::). Vector constants are terminated by ) . and it does not make sense to _evaluate_ something that is supposed to be the entry syntax for a constant. So this does not even make sense. I rescind the claim that no standard calls for explicit quoting and replace it with a "what were they even thinking here?" exclamation. > Of course, Guile has always implemented the R7RS-small behavior as an > extension to R5RS and R6RS. Are there any Scheme interpreters/versions that didn't at any point of time? Just curious. -- David Kastrup