從列表中獲取第 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 引數越大。