Int和Integer的不同行为?

时间:2010-09-01 19:44:04

标签: haskell

followng片段包含exercise 3 on page 69的解决方案(编写函数mean来计算列表的平均值)。

在编写一些QuickCheck测试以验证其结果是否更加清晰时,我发现在我的系统上(ghc 6.12.3,Haskell Platform 2010.2.0.0在32-but Ubuntu 10.4上),测试适用于{{ 1}}输入,但不适用于Integer个输入。有什么想法吗?

Int

1 个答案:

答案 0 :(得分:5)

Int基于底层系统的int实现,并且可能与底层系统具有相同的下限和上限(但至少是[-2 ^ 29,2 ^ 29 - 1]的范围。 Integer具有任意精度。因此,当您使用Int时,您可能会看到上溢或下溢。