Я читаю Programming in Haskell Книга и тестирование предоставлены примеры в интерпретаторе GHCi. Оказывается, существует разница в поведении типа Int
в интерпретаторе GHCi и Hugs. Согласно главе 3 «Программирование в Haskel», 2^31 :: Int
должен выйти за пределы диапазона Int
. Между тем, в интерпретатором GHCi я получаю:Почему Int тип 2^31 не выходит за пределы диапазона в GHCi?
Prelude> 2^31 :: Int
2147483648
в Hugs он ведет себя так же, как в книге говорит:
Hugs> 2^31 :: Int
-2147483648
В GHCi я могу даже проверить, если результат типа Int
Prelude> let x = 2^31 :: Int
Prelude> :type x
x :: Int
Prelude> x
2147483648
Что является источником описанной разницы? Должен ли я запускать примеры из книги в Hugs или использовать GHCi, который кажется рекомендуемым выбором для изучения Haskell? Буду признателен за вашу помощь.
вы должны просто удалить объятия – alternative
@alternative: Я думаю, что скачать объятия нужно снести! Или, возможно, переместился в неясное место и защищен каким-то специальным CAPTCHA от Haskell, которому требуется подробное знание разницы между Haskell98 и Haskell2010, чтобы ответить ... – yatima2975