访问列表中的元素

访问列表的第 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 值作为索引。

import Data.List (genericIndex)

list `genericIndex` 4              -- 5

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