从列表中获取第 n 个元素

List 不支持随机访问,这意味着从列表中获取第五个元素比第一个元素需要更多的工作,因此没有 List.get nth list 函数。一个人必须从头开始(1 -> 2 -> 3 -> 4 -> 5)。

**如果你需要随机访问,**你可能会得到更好的结果(和性能)随机访问数据结构,如 Array,其中第一个元素采取与第 1000 个相同的工作量。 (复杂度 O(1))。

然而,有可能 (但不鼓励) 获得第 n 个元素:

get : Int -> List a -> Maybe a
get nth list =
    list
        |> List.drop (nth - 1)
        |> List.head

fifth : Maybe Int
fifth = get 5 [1..10]
--    = Just 5

nonexistent : Maybe Int
nonexistent = get 5 [1..3]
--          = Nothing

同样,这需要更多的工作,nth 参数越大。