Keep it clean
Rinus Plasmeijer, Marko van Eekelen · ACM SIGPLAN Notices · 1999
CLEAN ~ is a functional language specially designed to make the development of real world applications possible.In this paper we give a short overview of the most important features of the language.The CLEAN compiler offers high compilation speed yet the quality of the produced native code is state-of-the-art.Of particular importance for practical use is CLEAN's uniqueness typing enabling destructive updates of arbitrary objects and the creation of direct interfaces with the outside world, all within a purely functional framework.CLEAN's "unique" features have been used to predefine (in CLEAN) a sophisticated I/O library enabling a CLEAN programmer to specify interactive window-based I/O applications on a very high level of abstraction.One can write programs creating and combining interactive objects with arbitrary local state.Furthermore, it is also possible to create lightweight processes which can communicate via files, shared state or (a)synchronous message passing primitives (including remote procedure call).Interactive CLEAN programs can be ported to a large variety of platforms such as WIN-DOWS '95 / NT, MAcOS, UNIX (SUN), LINUX (PC) and OS/2 (PC) without modification of source code.CLEAN and its Integrated Development Environment can be obtained via www.cs.kun.nl/-clean.