Haskell:
Organisering av kode i funksjoner
Hvordan:
Her er hvordan du kan skrive og bruke funksjoner i Haskell:
-- Definere en enkel funksjon for å legge til to tall
addNumbers :: Int -> Int -> Int
addNumbers x y = x + y
-- Bruke funksjonen
main = print (addNumbers 3 5)
Output:
8
Du kan også lage høyere-ordens funksjoner:
-- Tar en funksjon og anvender den to ganger på noe
applyTwice :: (a -> a) -> a -> a
applyTwice f x = f (f x)
-- Bruke applyTwice med en anonym funksjon
main = print (applyTwice (*2) 5)
Output:
20
Dypdykk
Haskell, et rent funksjonelt språk, behandler funksjoner som førsteklasses borgere. Historisk sett er dette rotfestet i lambda kalkulus, et grunnleggende rammeverk i beregning. I motsetning til imperativ språk hvor funksjoner er en sekvens av instruksjoner, er funksjoner i Haskell uttrykk som beskriver forholdet mellom data.
Det finnes alternativer til å skrive råfunksjoner for gjenbruk. Vurder å bruke typeklasser for polymorfisme eller dra nytte av moduler for å gruppere relaterte funksjoner. Hasells trege evaluering påvirker også funksjonsimplementasjon—funksjoner vil ikke bli evaluert før resultatene deres er nødvendige, noe som potensielt kan påvirke ytelseshensyn.
Se Også
- Offisiell Haskell-dokumentasjon: https://www.haskell.org/documentation/
- “Learn You a Haskell for Great Good!” av Miran Lipovača, en nybegynnervennlig bok: http://learnyouahaskell.com/
- “Real World Haskell” av Bryan O’Sullivan, Don Stewart, og John Goerzen: http://book.realworldhaskell.org/