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/