[erlang-questions] Literal support for unary (1#XXXXXX...)

Kostis Sagonas <>
Sun Jun 2 21:44:27 CEST 2013


On 06/02/2013 09:22 PM, Andrew Pennebaker wrote:
> Could we extend the # integer syntax to support base 1? It would be cool
> if 1#11111111 worked, instead of doing this:
>
> $ erl
> Erlang R15B03 (erts-5.9.3.1) [source] [64-bit] [smp:2:2]
> [async-threads:0] [hipe] [kernel-poll:false] [dtrace]
>
> Eshell V5.9.3.1  (abort with ^G)
> 1> 2#1000.
> 8
> 2> 1#11111111.
> * 1: illegal base '1'
> 2> #11111111.
> * 1: syntax error before: 11111111
>
> To be sure, base 1 isn't used that often in practice. But neither is
> base 3, 13, or 37, so it seems a little strange why the range of base
> literals is [2, 36]. If we apply the principle of "least surprise", I
> think it would be a good idea to also accept base 1.
>
> At worst, this would add one more complexity step; if we can't use the
> current base conversion algorithm for base 1, then adding one more match
> case and summing the number of 1's to follow would be trivial enough to
> implement.
>
> What do you think?

Is this a troll question?

Numbers B#XXXXXX come with the implicit constraint that the X's are in 
the range 0..B-1 (in some notation).  What is B#BBBBBB supposed to mean 
(for any base, not just 1)?  These numbers do not make any sense.

Kostis



More information about the erlang-questions mailing list