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论点越大,这需要花费更多的工作。