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