Почему «бесконечность» не допускается в поплавках Эрланга?
Erlang (и, соответственно, Elixir) поддерживает числа с плавающей точкой.
Некоторые возможные Поплавки:
1.2345
1.0e10
1.0e-42
Эрланг поддерживает NaN (nan.
в Erlang) (однако мне еще предстоит открыть метод, который выводитnan
сам).
Тем не менее, Эрланг не имеет поддержкиInfinity
, В то время как общие стандарты, такие как IEEE-754, утверждают, что следует вернутьсяInfinity
когда делаешь такие вещи, как1.0/0.0
вместо этого Эрланг бросаетbad arithmetic error
.
То же самое происходит при попытке сделать поплавки «слишком большими», как1.0e400
.
Вероятно, есть какая-то (историческая?) Причина этого.