Thanks for the explanation. 
We should pick solution one: 
        
> Enforce a uppercase and lowercase distinction (digit and exponent 
> respectively);

Why would we need to have HEX in lowercase for exponent?
Is there any adavantage. 
I found  2r1.111eef quite unreadable 2r1.111eEF


> On 5 Sep 2019, at 15:05, James Foster <smallt...@jgfoster.net> wrote:
> 
> Hi Stef,
> 
> The question is “How should it work?” How do we distinguish whether the 
> character ‘e’ (or ‘E’) is a representation for the (decimal) number 14 or is 
> a representation for “what follows is an exponent”? For example, it is easy 
> to recognize that the radix-based integer literal ‘16rFF’ is the SmallInteger 
> 255 and that the float literal ‘1.23e3’ is 1230.0 (a SmallDouble in 
> GemStone). 
> 
> For some reason, Pharo allowed ‘16ree’ to be the number 238 (permitting 
> lowercase for hexidecimal digits) and has also allowed ‘2r1.111e3’ to be the 
> same as ‘2r1111’ or 15 (permitting floating-point numbers to have a radix). 
> This introduces an ambiguity in interpreting the character ‘e’ (or ‘E’)—is it 
> a hexadecimal digit or is it an exponent identifier? 
> 
> I believe that there are the following alternatives:
> Enforce a uppercase and lowercase distinction (digit and exponent 
> respectively);
> Allow exponents on decimal (base ten) numbers only;
> Interpret ‘e’ as a hexadecimal digit if the radix is >= 15 (allowing 
> exponents on lower bases); or
> Develop a new syntax to introduce exponents.
> I believe that #3 is the current approach, and could be seen as #2 relaxed to 
> allow exponents on numbers with a radix of 2-14. 
> 
> It seems to me that the primary value of exponents on non-decimal (base ten) 
> numbers is to represent binary numbers (2r1e63 is more readable than 
> 2r1000000000000000000000000000000000000000000000000000000000000000). It seems 
> to me that the value of exponents on numbers with a base above 10 is less 
> pronounced (16r1E15 is better than 16r1000000000000000, but only a bit 
> better). Mostly, I’d assert that the value of exponents for radix 16 is not 
> worth a new syntax (excluding #4 above).
> 
> James
> 
>> On Sep 4, 2019, at 10:36 PM, ducasse <steph...@netcourrier.com 
>> <mailto:steph...@netcourrier.com>> wrote:
>> 
>> Hi nicolas
>> 
>> let us fix this :)
>> 
>> why 15r1.2e1 is not working?
>> why 15r1.2e1 is not equals to 15r1.2E1?
>> why would we need a new syntax?
>> 
>> Stef
>>> On 5 Sep 2019, at 00:19, Nicolas Cellier 
>>> <nicolas.cellier.aka.n...@gmail.com 
>>> <mailto:nicolas.cellier.aka.n...@gmail.com>> wrote:
>>> 
>>> Once upon a time, only uppercase letters were accpeted as extra digits (in 
>>> base > 10) for both int and float
>>> 
>>> Then 15r1.2E1 was not 15r1.2e1, the later being = 15r12.E
>>> 
>>> Then it was considered better to understand hexadecimal numbers with 
>>> lowercase too...
>>> and alternate-base Float became ambiguous and were never fixed :(
>>> 
>>> This would deserve a new syntax, I don't know what makes sense, 15r1.2_e1 
>>> 15r1.2#e1 ...
>>> Changing Smalltalk syntax is among the most difficult decisions, expect 
>>> outcry ;)
>>> Maybe because it's too easy :)
>>> 
>>> 
>>> Le jeu. 5 sept. 2019 à 00:04, James Foster <smallt...@jgfoster.net 
>>> <mailto:smallt...@jgfoster.net>> a écrit :
>>> 14r1.2e1 "16.0"
>>> 15r1.2e1 “1.195851851851852"
>>> 
>>> Does it make sense to have exponents for numbers that are not base 10? 
>>> There are tests that have large exponents for binary numbers and we are not 
>>> sure how to handle this in GemStone.
>>> 
>>> James
>>> 
>> 
> 

Reply via email to