访问列表中的元素
访问列表的第 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
(来自矢量包)或其他数据结构。