H ? « »

Language peer sets for Clean:
Designed 1987
1980s languages
Fifth generation
Late Cold War
Genus Lazy Evaluation FPs
Specialised Languages
Lazy Evaluation FPs
Lambda caculus
Lazy Evaluation FPs/1987
Lambda caculus/1987
Lazy Evaluation FPs/Netherlands
Lambda caculus/Netherlands
Specialised Languages
Specialised Languages/1987
Specialised Languages/nl


pure lazy functional language 

alternate simple view
Country: Netherlands
Designed 1987
Published: 1987
Genus: Lazy Evaluation FPs
Sammet category: Specialised Languages

Subset of Lean. Experimental lazy higher-order functional language with no syntactic sugaring (not even infix expressions or complex lists.) Also used as an intermediate language. Implemented via graph rewriting on the ABC abstract machine.

pure and lazy functional language based on the concept of mathematical functions. A CLEAN function is referential transparent: the result of the function only depends on the value of the function arguments and on nothing else. This has important consequences: once a function is working, it will always work. A function will always react in the same way, regardless when and in which context the function is used. One can reason about CLEAN functions and the program as a whole by using traditional mathematical reasoning, uniform substitution and mathematical induction. Has a modular, sophisticated I/oh library. Although CLEAN does not have assignment, objects can be updated destructivily. It's the only functional language in the world which has it's own type system, uniqueness typing: enabling updating of functional arguments destructively!  Although lazy by default, it can easyieasilyly turn into a strict language to obtain optimal time/space behavior.  Software Technology Research Group introduced (among other things) term graph writing, lazy copying, abstract reduction and uniqueness typing.

Related languages
Lean Clean   Subset
Clean Concurrent Clean   Extension of

  • (1987) "Clean A Language for Functional Graph Rewriting", T. Brus et al, IR 95, U Nijmegen, Feb 1987.
    Search in: Google  Google scholar  World Cat  Yahoo  Overture  DBLP  Monash bib  NZ  IEEE  ACM portal  CiteSeer  CSB  ncstrl  jstor  Bookfinder