<div dir="ltr"><div><div>Allowing lower case for hex flonum literals is extremely confusing in the context of the rest of the permitted syntax.<br></div><div><br>Consider:<br><br></div><div>> (list #b10s1 #b10l1 #b10d1 #b10e1 #b10f1)<br>
'(4.0f0 4.0 4.0 4.0 4.0f0)<br>> (list #o10s1 #o10l1 #o10d1 #o10e1 #o10f1)<br>'(64.0f0 64.0 64.0 64.0 64.0f0)<br>> (list #d10s1 #d10l1 #d10d1 #d10e1 #d10f1)<br>'(100.0f0 100.0 100.0 100.0 100.0f0)<br><br>
Up to here everything is gravy. But then:<br><br>> (list #x10s1 #x10l1 #x10d1 #x10e1 #x10f1)<br>'(256.0f0 256.0 4305 4321 4337)<br><br>I wasted like an hour or so trying to figure out what was going on with the last 3 cases before it finally hit me that "d", "e", and "f" are, of course, valid hexadecimal digits, so can't be used for exponent markers.<br>
<br>It would be useful, I think, to add a note to the doc:<br> <a href="http://docs.racket-lang.org/reference/reader.html#%28part._parse-extflonum%29">http://docs.racket-lang.org/reference/reader.html#%28part._parse-extflonum%29</a><br>
<table cellspacing="0"><tbody><tr><td valign="baseline"><p><span class=""><span class="">"#x2e5</span><span class=""></span></span></p></td><td valign="baseline"><p><span class=""> </span>reads equal to<span class=""> </span></p>
</td><td valign="baseline"><p><span class="">741 (because "e" is a hex digit, and 741=2*16^2+15*16^1+5*16^0)"<br></span></p></td></tr></tbody></table><br><div>-Will<br><br></div></div></div></div>