Ben Smith-Mannschott <bsmith.o...@gmail.com> writes:

> I follow forbidding "-4bar" since that means potentially unbounded
> look-ahead to distinguish numbers from non-numbers.
>
> Presumably forbidding ".4bar" is for the same reason, though ".01"
> doesn't appear to be a valid numeric literal. (Numeric literals all
> start with a digit.)

Common Lisp provides useful precedent with its notion of "potential
numbers"¹. If we stretch the analogy of namespace syntax to Common Lisp
package syntax, clause 3 in HyperSpec section 2.3.1.1² -- Potential
Numbers as Tokens -- is relevant to your cases above.

,----[ §2.3.1.1 ]
| 3. The token begins with a digit, sign, decimal point, or extension
|    character, but not a package marker. The syntax involving a leading
|    package marker followed by a potential number is not
|    well-defined. The consequences of the use of notation such as :1,
|    :1/2, and :2^3 in a position where an expression appropriate for read
|    is expected are unspecified.
`----

Well, I suppose that's precluding using the package marker without an
actual package name ahead of it, like using '/' without a namespace name
before it.

In any case, Common Lisp parses both "-4bar" and ".4bar" as symbols:

,----
| * (loop for s in '("-4bar" ".4bar") collect (type-of (read-from-string s)))
| (SYMBOL SYMBOL)
`----


Footnotes: 
¹ 
http://www.lispworks.com/documentation/HyperSpec/Body/26_glo_p.htm#potential_number
² http://www.lispworks.com/documentation/HyperSpec/Body/02_caa.htm

-- 
Steven E. Harris

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Reply via email to