На этом шаге мы перечислим эти функции.
Перечислим несколько таких функций.
1. Функция, возвращающая "больший" список из двух заданных списков (в смысле лексикографического порядка):
max:: Ord a => a -> a -> a max lst1 lst2
> max [1] [2] > max [1] [-2,3] > max [2] [2,3] [2] [1] [2,3]
2. Функция, возвращающая "меньший" список из двух заданных списков (в смысле лексикографического порядка):
min:: Ord a => a -> a -> a min lst1 lst2
> min [1] [2] > min [1] [-2,3] > min [2] [2,3] [1] [-2,3] [2]
3. Функция, возвращающая максимальное значение элементов исходного непустого списка:
maximum:: Ord a => [a] -> a maximum lst
> maximum [1] > maximum [-1,-2] 1 -1 > maximum [-1,-2,5] > maximum [[1],[1,1]] 5 [1,1] > maximum [[1],[-2,3],[4,5,6],[1,1,1]] [4,5,6]
4. Функция, возвращающая минимальное значение элементов исходного непустого списка:
minimum:: Ord a => [a] -> a minimum lst
> minimum [1] > minimum [-1,-2] 1 -2 > minimum [5,-5,-10] > minimum [[1],[1,1]] -10 [1] > minimum [[1],[(-2),3],[4,5,6],[1,1,1]] [-2,1]
5. Функция, определяющая в списке пар вида
(Значение, Ассоциированное_значение)
lookup:: Eq a => a -> [(a,b)] -> Maybe b lookup a lstPair
> lookup 4 [(1,2),(3,4),(4,5),(4,7)] Just 5 > lookup 4 [(1,2),(3,4),(5,5),(7,7)] Nothing
На следующем шаге мы рассмотрим элементарные селекторы.