Haskell:
Організація коду в функції

Як це зробити:

Ось як ви можете написати та використовувати функції в Haskell:

-- Визначення простої функції для додавання двох чисел
addNumbers :: Int -> Int -> Int
addNumbers x y = x + y

-- Використання функції
main = print (addNumbers 3 5)

Вивід:

8

Ви також можете створювати функції вищого порядку:

-- Бере функцію та застосовує її двічі до чогось
applyTwice :: (a -> a) -> a -> a
applyTwice f x = f (f x)

-- Використання applyTwice з анонімною функцією
main = print (applyTwice (*2) 5)

Вивід:

20

Поглиблено

Haskell, як чисто функціональна мова, вважає функції об’єктами першого класу. Історично це має коріння в λ-численні, основоположному фреймворку в обчисленнях. На відміну від імперативних мов, де функції є послідовністю інструкцій, в Haskell функції є виразами, які описують відносини між даними.

Є альтернативи написанню сирих функцій для повторного використання. Розглядайте використання класів типів для поліморфізму або використовуйте модулі для групування пов’язаних функцій. Лінива оцінка в Haskell також впливає на реалізацію функції—функції не оцінюються допоки їх результати не знадобляться, що потенційно може впливати на міркування щодо продуктивності.

Дивіться також

  • Офіційна документація Haskell: https://www.haskell.org/documentation/
  • “Learn You a Haskell for Great Good!” (“Вивчай Haskell для великого блага!”) автора Мірана Ліповача, книга дружня до початківців: http://learnyouahaskell.com/
  • “Real World Haskell” (“Haskell у реальному світі”) авторства Брайана О’Саллівана, Дона Стюарта та Джона Гоерзена: http://book.realworldhaskell.org/