Haskell è un linguaggio di programmazione puramente funzionale, la cui prima versione è stata pubblicata nel 1990 e che prende il nome dal matematico Haskell Brooks Curry, il quale gettò le basi per i linguaggi di programmazione funzionale con il suo lavoro sulla logica combinatoria (tra il 1920 e il 1960). Haskell si basa sul calcolo lambda (linguaggio formale per l’analisi delle funzioni), motivo per cui la lettera greca lambda adorna anche il logo ufficiale del linguaggio.
I programmi scritti in Haskell sono sempre rappresentati come funzioni matematiche, per cui queste funzioni non hanno mai effetti collaterali o secondari. Con lo stesso input, ogni funzione utilizzata fornisce sempre lo stesso risultato e non cambia mai lo stato di un programma. Il valore di un’espressione o il risultato di una funzione dipende pertanto solo dai parametri di input correnti. Non ci sono costruzioni linguistiche imperative per programmare una sequenza di istruzioni in Haskell.
Dopo la sua pubblicazione, Haskell è diventato una sorta di standard per i linguaggi di programmazione funzionale. In seguito sono stati sviluppati numerosi derivati del linguaggio funzionale, tra cui Parallel Haskell, Eager Haskell, Haskell++ o Eden, strettamente correlati ad Haskell. Anche alcuni linguaggi di programmazione completamente nuovi si basano su Haskell. Tra questi troviamo, ad esempio, il linguaggio universale Python, uno dei più importanti e moderni linguaggi di programmazione Internet, il quale ha adottato la notazione lambda e la sintassi dell’elaborazione dell’elenco Haskell.