A friend of mine is writing a DSL and wants to use the character ૪ as part of his notation. If you try to use this character as part of a symbol in clojure you get an error like the following:
user=> (read-string "૪")
Execution error (NumberFormatException) at user/eval5 (REPL:1).
Invalid number: ૪
user=>
The cause of this appears to be:
user=> (Character/isDigit \૪)
true
user=>
The character is a digit in Gujarati script so java's Character/isDigit returns true, so the clojure reader tries to parse it as a number, but it can only handle arabic numerals (and maybe hex).
It seems like if the reader is going to rely on Character/isDigit, it should be able to turn any of those characters into a number or the reader should allow "digits" it doesn't know how to handle to be symbols.