Список методов манипуляции в Haskell с примерами кода

Вот несколько распространенных методов, используемых со списками в Haskell, а также примеры кода:

  1. длина: возвращает длину списка.

    listLength :: [a] -> Int
    listLength xs = length xs
  2. head: возвращает первый элемент списка.

    getFirstElement :: [a] -> a
    getFirstElement xs = head xs
  3. tail: возвращает все элементы списка, кроме первого.

    getRemainingElements :: [a] -> [a]
    getRemainingElements xs = tail xs
  4. init: возвращает все элементы списка, кроме последнего.

    getInitialElements :: [a] -> [a]
    getInitialElements xs = init xs
  5. last: возвращает последний элемент списка.

    getLastElement :: [a] -> a
    getLastElement xs = last xs
  6. take: возвращает указанное количество элементов с начала списка.

    getFirstNElements :: Int -> [a] -> [a]
    getFirstNElements n xs = take n xs
  7. drop: возвращает все элементы списка, кроме указанного числа с начала.

    getRemainingElementsAfterN :: Int -> [a] -> [a]
    getRemainingElementsAfterN n xs = drop n xs
  8. обратный: меняет порядок элементов в списке.

    reverseList :: [a] -> [a]
    reverseList xs = reverse xs
  9. elem: проверяет, присутствует ли элемент в списке.

    isElementPresent :: Eq a => a -> [a] -> Bool
    isElementPresent x xs = elem x xs
  10. фильтр: фильтрует список на основе функции предиката.

    filterList :: (a -> Bool) -> [a] -> [a]
    filterList f xs = filter f xs
  11. map: применяет функцию к каждому элементу списка и возвращает новый список.

    mapList :: (a -> b) -> [a] -> [b]
    mapList f xs = map f xs
  12. foldlи foldr: выполняет операцию сгиба списка влево или вправо, используя двоичную функцию и начальное значение аккумулятора.

    sumList :: Num a => [a] -> a
    sumList xs = foldl (+) 0 xs
  13. zip: объединяет два списка в список пар.

    combineLists :: [a] -> [b] -> [(a, b)]
    combineLists xs ys = zip xs ys