Paradigm | functional |
---|---|
Designed by | Software Technology Research Group of Radboud University Nijmegen |
First appeared | 1987 |
Stable release |
2.4 / December 23, 2011
|
Typing discipline | strong, static, dynamic |
OS | Cross-platform |
License | GNU LGPL, Simplified BSD, commercial software |
Filename extensions | .icl, .dcl, .abc, .sapl |
Website | clean |
Influenced by | |
Lean, Miranda, Haskell | |
Influenced | |
Haskell |
Clean is a general-purpose purely functional computer programming language. For much of the language's active development history it was called Concurrent Clean, but this was dropped at some point.
The language Clean first appeared in 1987 and is still being further developed. It shares many properties with Haskell: referential transparency, list comprehension, guards, garbage collection, higher order functions, currying and lazy evaluation.
On Windows, an integrated development environment (IDE) is included in the Clean distribution.
Clean's method for dealing with mutable state and I/O is done through a uniqueness typing system, in contrast to Haskell's use of monads. The compiler takes advantage of the uniqueness type system to generate more efficient code, because it knows that anything with a uniqueness type can only be used once. Therefore, a unique value can be changed in place.
Infix operator: