A lazy higher-order purely functional language from the University of Nijmegen. Clean was originally a subset of Lean, designed to be an experimental intermediate language and used to study the graph rewriting model. To help focus on the essential implementation issues it deliberately lacked all syntactic sugar, even infix expressions or complex lists,
As it was used more and more to construct all kinds of applications it was eventually turned into a general purpose functional programming language, first released in May 1995. The new language is strongly typed (Milner/Mycroft type system), provides modules and functional I/O (including a WIMP interface), and supports parallel processing and distributed processing on loosely coupled parallel architectures. Parallel execution was originally based on the PABC abstract machine.
Although the two variants of Clean are rather different, the name Clean can be used to denote either of them. To distinguish, the old version can be referred to as Clean 0.8, and the new as Clean 1.0 or Concurrent Clean.
The current release of Clean (1.0) includes a compiler, producing code for the ABC abstract machine, a code generator, compiling the ABC code into either object-code or assembly language (depending on the platform), I/O libraries, a development environment (not all platforms), and documentation. It is supported (or will soon be supported) under Mac OS, Linux, OS/2, Windows 95, SunOS, and Solaris.
1. Used of hardware or software designs, implies "elegance in the small", that is, a design or implementation that may not hold any surprises but does things in a way that is reasonably intuitive and relatively easy to comprehend from the outside. The antonym is "grungy" or crufty.
2. To remove unneeded or undesired files in a effort to reduce clutter: "I'm cleaning up my account." "I cleaned up the garbage and now have 100 Meg free on that partition."