A
non-strict,
pure,
statically typed,
polymorphic,
higher-order,
functional programming language which evolved from
Miranda and the
ML family of
semi-functional languages. Haskell has an advanced type system which, in addition to the parametrizable algebraic datatypes familiar from ML, allows
overloading via type classes, both on type constants and type constructors. It supports imperative constructs such as destructive update and exceptions via the notion of
monads.
The major compiler implementations are the Glasgow Haskell Compiler (GHC), the Haskell B. Compiler (HBC) and NHC. Hugs is a Haskell interpreter suitable for small platforms. Hugs and GHC will soon be interoperable.
Other notable features of the Haskell language or its implementations include garbage collection, type inference, the pioneering COM/CORBA foreign function interface embodied in H/Direct and GreenCard, extensions such as multi-parameter type classes and second-order polymorphism, lazy evaluation, extensible infix syntax and layout syntax (as in Python).