Haskell访问列表中的元素

示例

访问列表的第n个元素(从零开始):

list = [1 .. 10]

firstElement = list !! 0           -- 1

请注意,这!!是部分函数,因此某些输入会产生错误:

list !! (-1)     -- *** Exception: Prelude.!!: negative index  

list !! 1000     -- *** Exception: Prelude.!!: index too large

还有Data.List.genericIndex一个的重载版本!!,它接受任何Integral值作为索引。

importData.List(genericIndex)

list `genericIndex` 4              -- 5

当实现为单链接列表时,这些操作将花费O(n)时间。如果您经常按索引访问元素,则最好使用Data.Vector(从向量包中)或其他数据结构。