我正在閱讀Programming in Haskell書籍和測試,它提供了GHCi口譯員的例子。事實證明,GHCi和Hugs解釋器中的Int
類型行爲存在差異。根據「Haskel編程」第3章,2^31 :: Int
應該超出Int
類型的範圍。同時,在GHCI解釋,我得到:爲什麼Int 2^31不會超出GHCi的範圍?
Prelude> 2^31 :: Int
2147483648
而擁抱它的行爲就像書上說:
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:我認爲下載的擁抱應該被取消!或者也許移動到一個模糊的位置,並受某種Haskell特定的CAPTCHA的保護,它需要詳細瞭解Haskell98和Haskell2010之間的差異來回答... – yatima2975