До сих пор мы обсуждали многие типы функций Haskell и использовали разные способы вызова этих функций. В этой главе мы узнаем о некоторых основных функциях, которые можно легко использовать в Haskell без импорта какого-либо специального класса Type. Большинство из этих функций являются частью других функций более высокого порядка.
Функция головы
Головная функция работает в списке. Возвращает первый входной аргумент, который в основном является списком. В следующем примере мы передаем список с 10 значениями и генерируем первый элемент этого списка, используя функцию head .
main = do пусть х = [1..10] putStrLn "Наш список:" печать (х) putStrLn "Первый элемент списка:" печать (голова х)
Это даст следующий результат —
Наш список: [1,2,3,4,5,6,7,8,9,10] Первый элемент списка: 1
Хвост Функция
Хвост — это функция, которая дополняет функцию головы . Он принимает список в качестве входных данных и выдает весь список без головной части. Это означает, что функция tail возвращает весь список без первого элемента. Взгляните на следующий пример —
main = do пусть х = [1..10] putStrLn "Наш список:" печать (х) putStrLn "Хвост нашего списка:" печать (хвост х)
Это даст следующий результат —
Наш список: [1,2,3,4,5,6,7,8,9,10] Хвост нашего списка: [2,3,4,5,6,7,8,9,10]
Последняя функция
Как следует из названия, он возвращает последний элемент списка, который предоставляется в качестве входных данных. Проверьте следующий пример.
main = do пусть х = [1..10] putStrLn "Наш список:" печать (х) putStrLn "Последний элемент нашего списка:" печать (последний х)
Это даст следующий результат —
Наш список: [1,2,3,4,5,6,7,8,9,10] Последний элемент нашего списка: 10
Функция инициализации
Init работает точно так же, как функция tail . Он принимает список в качестве аргумента и возвращает весь список без последней записи.
main = do пусть х = [1..10] putStrLn "Наш список:" печать (х) putStrLn "Наш список без последней записи:" печать (init x)
Теперь понаблюдайте за его выводом —
Наш список: [1,2,3,4,5,6,7,8,9,10] Наш список без последней записи: [1,2,3,4,5,6,7,8,9]
Нулевая функция
Null — это булева функция проверки, которая работает со строкой и возвращает True только тогда, когда данный список пуст, в противном случае возвращается False . Следующий код проверяет, является ли предоставленный список пустым или нет.
main = do пусть х = [1..10] putStrLn "Наш список:" печать (х) putStrLn "Наш список пуст?" печать (ноль х)
Это даст следующий результат —
Наш список: [1,2,3,4,5,6,7,8,9,10] Наш список пуст? Ложь
Обратная функция
Он работает на входе String и преобразует весь вход в обратном порядке и дает один выход в результате. Ниже приведена база кода для этой функции.
main = do пусть х = [1..10] putStrLn "Наш список:" печать (х) putStrLn "Список в обратном порядке:" печать (обратный х)
Это даст следующий результат —
Наш список: [1,2,3,4,5,6,7,8,9,10] Список в обратном порядке: [10,9,8,7,6,5,4,3,2,1]
Функция длины
Эта функция используется для вычисления длины списка, заданного в качестве аргумента. Взгляните на следующий пример —
main = do пусть х = [1..10] putStrLn "Наш список:" печать (х) putStrLn "Длина этого списка:" печать (длина х)
У нас есть 10 элементов в нашем списке, поэтому наш код выдаст 10 в качестве вывода.
Наш список: [1,2,3,4,5,6,7,8,9,10] Длина этого списка: 10
Взять функцию
Функция Take используется для создания подстроки из другой строки. Следующий код показывает, как вы можете использовать функцию take в Haskell —
main = print (взять 5 ([1 .. 10]))
Код генерирует подстроку, содержащую 5 элементов из предоставленного списка —
[1,2,3,4,5]
Функция Drop
Эта функция также используется для генерации подстроки. Он действует как противоположность функции take . Посмотрите на следующий кусок кода —
main = print (drop 5 ([1 .. 10]))
Код удаляет первые 5 элементов из предоставленного списка и печатает оставшиеся 5 элементов. Это даст следующий результат —
[6,7,8,9,10]
Максимальная функция
Эта функция используется для поиска элемента с максимальным значением из предоставленного списка. Давайте посмотрим, как использовать это на практике —
main = do пусть х = [1,45,565,1245,02,2] putStrLn "Максимальное значение элемента списка:" печать (максимум х)
Приведенный выше фрагмент кода сгенерирует следующий вывод:
Максимальное значение элемента списка: 1245
Минимальная функция
Эта функция используется для поиска элемента с минимальным значением из предоставленного списка. Это просто противоположность максимальной функции.
main = do пусть х = [1,45,565,1245,02,2] putStrLn "Элемент минимального значения в списке:" печать (минимум х)
Вывод вышеуказанного кода —
Элемент минимального значения в списке: 1
Функция суммы
Как следует из названия, эта функция возвращает суммирование всех элементов, представленных в предоставленном списке. Следующий код берет список из 5 элементов и возвращает их суммирование в качестве вывода.
main = do пусть х = [1..5] putStrLn "Наш список:" печать (х) putStrLn "Суммирование элементов списка:" печать (сумма х)
Это даст следующий результат —
Наш список: [1,2,3,4,5] Суммирование элементов списка: 15
Функция продукта
Вы можете использовать эту функцию, чтобы умножить все элементы в списке и распечатать его значение.
main = do пусть х = [1..5] putStrLn "Наш список:" печать (х) putStrLn "Умножение элементов списка:" печать (продукт х)
Наш код выдаст следующий результат:
Наш список: [1,2,3,4,5] Умножение элементов списка: 120
Элемент Функция
Эта функция используется для проверки того, содержит ли предоставленный список определенный элемент или нет. Соответственно, он либо возвращает истину, либо ложь .
Следующий код проверяет, содержит ли предоставленный список элементов значение 786.
main = do пусть х = [1,45,155,1785] putStrLn "Наш список:" печать (х) putStrLn "Содержит ли он 786?" печать (элемент 786 (х))
Это даст следующий результат —
Наш список: [1,45,155,1785] Содержит ли он 786? Ложь
Используйте тот же код, чтобы проверить, содержит ли предоставленный список значение 1785 или нет.