haskell - (!!) 整数溢出运算符

标签 haskell

我最近刚刚开始学习 Haskell,并开始尝试无限列表和惰性求值的想法。我构建了一个无限列表,并尝试使用 !! 运算符访问非常非常遥远的索引处的元素。问题在于 !! 运算符的类型签名如下:

(!!)::[a] -> Int -> a

这意味着它需要一个 Int 作为索引来从列表中检索该元素。

现在,每当我尝试对距离太远的东西进行索引以至于它溢出 Int 并因此变为负值时,就会出现问题。那么正确的 Haskell 方法是什么?

最佳答案

Data.List.genericIndex 支持使用任何整数进行索引,因此您可以根据需要使用 Integer。

关于haskell - (!!) 整数溢出运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21419175/

相关文章:

haskell - 您可以使用模式匹配来绑定(bind)列表的最后一个元素吗?

haskell - 元组列表的类型构造函数是什么?

haskell - 愚蠢的重复记录字段错误

haskell - 类型检查器可以帮我吗?也许是类型家庭?

haskell - 隐藏包binary-0.7.5.0?

haskell - 自定义 ord 和 chr 函数

haskell - 井字棋游戏枚举器结果不正确

Haskell 的 inline-C 可以将 typedef 返回到函数指针吗?

Haskell 从 IO 域获取值

c++ - 通过 FFI block 从 Haskell 调用共享库,而从 C 程序链接时则不会