I believe r5rs says an identifier can't start with a digit, but
guile allows it to:

scheme@(guile-user)> (symbol? (make-symbol "0"))
#t
scheme@(guile-user)> (symbol->string (make-symbol "0"))
"0"
scheme@(guile-user)> (keyword? (symbol->keyword (string->symbol "0")))
#t
scheme@(guile-user)> (symbol? (string->symbol "0e0"))
#t

which leads one naively to:

scheme@(guile-user)> (let ((0e 1)) 0e)
1
scheme@(guile-user)> (let ((0e0 1)) 0e0)
<error printout>

Not a bug, I guess, but not very pretty.

(r6rs says an identifier "begins with a character that cannot 
begin a representation of a number object."  I think they meant 
"a sequence of characters").



Reply via email to