A lazy higher-order purely functionallanguage from the University of Nijmegen. Clean was originally a subset ofLean, designed to be an experimental intermediate language and used to studythe graph rewriting model. To help focus on the essential implementation issuesit deliberately lacked all syntactic sugar, even infix expressions or complexlists.
As it was used more and more to constructall kinds of application it was eventually turned into a general purposefunctional programming language, first released in May 1995. The new languageis strongly typed (Milner/Mycroft type system), provides modules and functionalI/O (including a WIMP interface), and supports parallel processing anddistributed processing on loosely coupled parallel architectures. Parallelexecution was originally based on the PABC abstract machine.
It is one of the fastest implementations offunctional languages available, partly aided by programmer annotations toinfluence evaluation order.
Although the two variants of Clean arerather different, the name Clean can be used to denote either of them. Todistinguish, 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) includesa compiler, producing code for the ABC abstract machine, a code generator,compiling the ABC code into either object-code or assembly language (dependingon 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.
Used of hardwareor software designs, implies “elegance in the small”, that is, a design orimplementation that may not hold any surprises but does things in a way that isreasonably intuitive and relatively easy to comprehend from the outside. Theantonym is “grungy” or crufty.
To removeunneeded or undesired files in a effort to reduce clutter: “I’m cleaning up myaccount.” “I cleaned up the garbage and now have 100 Meg free on that partition”.