我最近刚刚开始学习 Haskell,并开始尝试无限列表和惰性求值的想法。我构建了一个无限列表,并尝试使用 !!
运算符访问非常非常遥远的索引处的元素。问题在于 !!
运算符的类型签名如下:
(!!)::[a] -> Int -> a
这意味着它需要一个 Int
作为索引来从列表中检索该元素。
现在,每当我尝试对距离太远的东西进行索引以至于它溢出 Int
并因此变为负值时,就会出现问题。那么正确的 Haskell 方法是什么?
最佳答案
Data.List.genericIndex 支持使用任何整数进行索引,因此您可以根据需要使用 Integer。
关于haskell - (!!) 整数溢出运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21419175/