2012-04-22 52 views
5

我有一个程序使用IntInteger,因为一些函数返回的结果非常大。我厌倦了在各地都需要使用fromIntegral,我想知道是否有办法让Haskell在编译时忽略IntInteger之间的区别。Haskell可以忽略Ints与整数吗?

+4

不,没有。忽略它们是不同类型和不同属性的事实在语言中是邪恶的,并且与Haskell类似。我同意这有时候很痛苦,但忽略差异会更糟;并且忽略了Haskell提供的类型安全的全部要点。 – 2012-04-22 22:06:51

+8

不,没有。这是一件好事:输入安全。你可以定义一个类型名称较短的转换,但是:) – 2012-04-22 22:07:22

+3

至少在GHC中,'Integer'将在内部尽可能使用'Int',所以使用'Int'并不一定有意义。在这种情况下。 – geekosaur 2012-04-22 22:09:00

回答

13

解决方案:从您的程序中删除Int,并使用全部Integer s。正如geekosaur所指出的那样,您可以使用the generic functions from Data.List(例如genericLength)。如果您向我们提供您的特定程序代码,那么我们可以提供更具体的建议。