Почему `NaN` является возможным значением для типа`Int` в Elm?

Я недавно начал изучать вяз. Когда я увидел Int типа я предположил, что это было что-то вроде Хаскелла Int, который (я думаю) машина целое число.

Но я был удивлен, увидев это:

> Result.withDefault 0 <| String.toInt "-"
NaN : Int

NaN это концепция с плавающей точкой, которая не должна применяться к целым числам. Кажется, что это может быть утечка из JS, что подразумевает, что Int представляется как JS Number,

Это тот случай? Почему было принято это дизайнерское решение, и где я могу узнать о нем?

(Также два небольших вопроса:

)

2 ответа

Решение

NaN не является действительным Int значение. Это ошибка в elm-lang/core пакет, который с тех пор был исправлен на master, но еще не был выпущен.

Отвечая на второй второстепенный вопрос (это ужасно, но все еще не устарело) NaN кажется единственным x такой, что x /= x

Другие вопросы по тегам