5
我有一个程序使用Int
和Integer
,因为一些函数返回的结果非常大。我厌倦了在各地都需要使用fromIntegral
,我想知道是否有办法让Haskell在编译时忽略Int
和Integer
之间的区别。Haskell可以忽略Ints与整数吗?
我有一个程序使用Int
和Integer
,因为一些函数返回的结果非常大。我厌倦了在各地都需要使用fromIntegral
,我想知道是否有办法让Haskell在编译时忽略Int
和Integer
之间的区别。Haskell可以忽略Ints与整数吗?
解决方案:从您的程序中删除Int
,并使用全部Integer
s。正如geekosaur所指出的那样,您可以使用the generic functions from Data.List(例如genericLength
)。如果您向我们提供您的特定程序代码,那么我们可以提供更具体的建议。
不,没有。忽略它们是不同类型和不同属性的事实在语言中是邪恶的,并且与Haskell类似。我同意这有时候很痛苦,但忽略差异会更糟;并且忽略了Haskell提供的类型安全的全部要点。 – 2012-04-22 22:06:51
不,没有。这是一件好事:输入安全。你可以定义一个类型名称较短的转换,但是:) – 2012-04-22 22:07:22
至少在GHC中,'Integer'将在内部尽可能使用'Int',所以使用'Int'并不一定有意义。在这种情况下。 – geekosaur 2012-04-22 22:09:00