Elm возвращает целое число вместо Bool, ошибка компилятора? - PullRequest
0 голосов
/ 05 февраля 2019

В сигнатуре функции четко указано, что она должна возвращать Bool, так почему функция возвращает 96?Более того, компилятор считает, что 96 на самом деле Bool.Это ошибка?

> isLeapYear year =\
|       (modBy 4 year == 0) && (modBy 100 year /= 0) || (modBy 400 year == 0)
<function> : Int -> Bool

> isLeapYear 1996
96 : Bool

Кажется, иногда работает:

> isLeapYear 2000
True : Bool
> isLeapYear 1800
False : Bool

1 Ответ

0 голосов
/ 06 февраля 2019

Это ошибка компилятора , которую я подал в прошлом году и которая теперь исправлена.

Это влияет только на оператор /=, когда один аргумент 0: замена (modBy 100 year /= 0) с (not (modBy 100 year == 0)) обойдет проблему.

Ошибка была исправлена ​​в исходном репозитории, но я не знаю, когда будет выпущено исправление.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...