Haskell is a standardized, general-purpose compiled purely functional programming language, with non-strict semantics and strong static typing.

Haskell is a functional language, where we focus on functions which take immutable values as input and produce new values as output. Furthermore, Haskell is a lazy language and it defers computation until the result is actually needed.

Haskell has profoundly different paradigm of programming and hence a typical haskell program looks quite different than a traditional program in C, Python, or Java.

Sample program of quicksort in Haskell:

quicksort :: Ord a => [a] -> [a]
quicksort []     = []
quicksort (p:xs) = (quicksort lesser) ++ [p] ++ (quicksort greater)
        lesser  = filter (< p) xs
        greater = filter (>= p) xs