Haskell – czysto funkcyjny język programowania nazwany na cześć amerykańskiego matematyka, Haskella Curry’ego.

Cechy Jego specyficzne cechy to m.in.: leniwe wartościowanie (), wsparcie syntaktyczne monad, statyczny polimorfizm, klasy typów (ang. typeclasses), definiowalne operatory (również możliwość tworzenia nowych), strażnicy, wbudowana obsługa literate programming.

Rozszerzenia Pliki Haskella mają rozszerzenie hs lhs gdy zawierają kod w stylu literate programming.

Kompilator Haskell był początkowo intensywnie rozwijany wokół ośrodka University of Glasgow, popularny kompilator tego języka to Glasgow Haskell Compiler (GHC) kompilujący szybki kod maszynowy porównywalny w szybkości wykonania do kodów z GCC .

Przykłady -- Komentarz w jednej linijce {- Komentarze na wiele linijek {- można zagnieżdżać -}

-- Przykłady funkcji z dopasowywaniem wzorca silnia 0 = 1 silnia n = n*silnia(n-1)

silnia n = product [1..n]

fib 0 = 0 fib 1 = 1 fib n = fib(n-1) + fib(n-2)

ack(0,y) = y+1 ack(x,0) = ack(x-1,1) ack(x,y) = ack(x-1,ack(x,y-1))

-- przykład użycia strażników sign x | x > 0 = 1 | x == 0 = 0 | x < 0 = -1

myproduct [] = 1 myproduct (n:m) = n * myproduct m

mysum [] = 0 mysum (n:m) = n + mysum m