在64位系统上,Int64 应该 可以正常使用,但我并不确定。
更重要的是,如果你正在进行加密或随机数生成,你必须使用算法规定的数据类型,并注意符号。如果你不这样做,你将得到错误的结果,这可能意味着你的加密不安全或者你的随机数生成器不是真正的随机(RNG很难,许多看起来随机的RNG实际上并不随机)。
对于其他类型的工作,尽可能使用Integer,或者更好的方法是使用Integral类型类使你的程序具有多态性。然后,如果你认为你的程序比它应该快的慢,请进行分析以确定你应该集中精力加速的地方。如果你使用Integral类型类,从Integer到Int的更改是容易的。Haskell应该足够聪明,可以专门化(大部分)使用多态的代码以避免开销。
Int32
或Int64
。创建类型同义词以便稍后轻松测试。还要注意Int
不等于Int32
(Haskell 规范仅保证Int
至少为 31 位)。 - John L