Das funktionale Konzept ist stark an die Matheatik angelehnt. Es existieren nur Werte und Funktionen. Anweisungsfolgen, wie in einer imperativen Programmiersprache, existiren nicht. Es wird jede Veränderung durch eine Funktion definiert.
Die Reihenfolge der Auswertung eines Ausdrucks ist dabei nicht vorher bestimmt. Sollen Funktionenn einer bestimmten Reihenfolge ausgewertet werden, so müssen bestimmte Kontrollstukturen, Monats, benutzt werden.
Haskell hat ein ausdruckstarkes Typsytem. Da alle Änderungen durch Funktionen definiert sind und Funktionen einen definierten Rückgabewer haben, können die meisten Typchecks zur Compilezeit durch geführt werden.
Polymorphe Funktionen 2. Grades machen Ausdr¨cke in Haskel wieder verwendbar und mächtig. Haskell-Code ist oft bedeutend kürzer als vergleichbare Software in z.B. C oder Java.