-
Определение функции. В Haskell функции могут быть определены с использованием синтаксиса
имя_функции параметр1 параметр2 = выражение. Например, функцию, вычисляющую сумму двух чисел, можно определить следующим образом:sumNumbers :: Int -> Int -> Int sumNumbers x y = x + y -
Сопоставление с образцом: Haskell допускает сопоставление с образцом в определениях функций. Это позволяет использовать различное поведение в зависимости от шаблона ввода. Вот пример:
isZero :: Int -> Bool isZero 0 = True isZero _ = False -
Рекурсия: Haskell поощряет использование рекурсии для решения проблем. Функции могут вызывать сами себя для выполнения итеративных процессов. Вот пример рекурсивной функции для вычисления факториала числа:
factorial :: Int -> Int factorial 0 = 1 factorial n = n * factorial (n - 1) -
Функции высшего порядка: Haskell рассматривает функции как первоклассных граждан, что означает, что функции могут принимать другие функции в качестве аргументов или возвращать функции в качестве результатов. Это позволяет использовать мощные методы, такие как композиция функций и частичное применение.
-
Лямбда-выражения: Haskell поддерживает использование анонимных функций, называемых лямбда-выражениями. Лямбда-выражения полезны, когда функция необходима только в определенном контексте и не требует отдельного определения. Вот пример:
addOne :: Int -> Int addOne = \x -> x + 1