Вот несколько распространенных методов, используемых со списками в Haskell, а также примеры кода:
-
длина: возвращает длину списка.listLength :: [a] -> Int listLength xs = length xs -
head: возвращает первый элемент списка.getFirstElement :: [a] -> a getFirstElement xs = head xs -
tail: возвращает все элементы списка, кроме первого.getRemainingElements :: [a] -> [a] getRemainingElements xs = tail xs -
init: возвращает все элементы списка, кроме последнего.getInitialElements :: [a] -> [a] getInitialElements xs = init xs -
last: возвращает последний элемент списка.getLastElement :: [a] -> a getLastElement xs = last xs -
take: возвращает указанное количество элементов с начала списка.getFirstNElements :: Int -> [a] -> [a] getFirstNElements n xs = take n xs -
drop: возвращает все элементы списка, кроме указанного числа с начала.getRemainingElementsAfterN :: Int -> [a] -> [a] getRemainingElementsAfterN n xs = drop n xs -
обратный: меняет порядок элементов в списке.reverseList :: [a] -> [a] reverseList xs = reverse xs -
elem: проверяет, присутствует ли элемент в списке.isElementPresent :: Eq a => a -> [a] -> Bool isElementPresent x xs = elem x xs -
фильтр: фильтрует список на основе функции предиката.filterList :: (a -> Bool) -> [a] -> [a] filterList f xs = filter f xs -
map: применяет функцию к каждому элементу списка и возвращает новый список.mapList :: (a -> b) -> [a] -> [b] mapList f xs = map f xs -
foldlиfoldr: выполняет операцию сгиба списка влево или вправо, используя двоичную функцию и начальное значение аккумулятора.sumList :: Num a => [a] -> a sumList xs = foldl (+) 0 xs -
zip: объединяет два списка в список пар.combineLists :: [a] -> [b] -> [(a, b)] combineLists xs ys = zip xs ys