, statically typed
, 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 monad
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).