# Clean

> programming language

**Wikidata**: [Q377986](https://www.wikidata.org/wiki/Q377986)  
**Wikipedia**: [English](https://en.wikipedia.org/wiki/Clean_(programming_language))  
**Source**: https://4ort.xyz/entity/clean

## Summary
Clean is a purely functional programming language designed for writing high-assurance software. It was first released in 1987 and is known for its non-strict evaluation and strong typing system. Clean is often used in academic and research settings due to its mathematical foundations and formal verification capabilities.

## Key Facts
- **Inception**: 1987 ([reference](https://en.wikipedia.org/wiki/Clean_(programming_language)))
- **Latest Stable Version**: 3.1 (released September 22, 2022) ([reference](https://wiki.clean.cs.ru.nl/Download_Clean))
- **License**: GNU Lesser General Public License ([reference](https://en.wikipedia.org/wiki/Clean_(programming_language)))
- **Typing Discipline**: Dynamic typing, strong typing, and uniqueness typing ([reference](https://en.wikipedia.org/wiki/Clean_(programming_language)))
- **Programming Paradigms**: Purely functional programming, functional programming ([reference](https://en.wikipedia.org/wiki/Clean_(programming_language)))
- **Website**: [http://clean.cs.ru.nl](http://clean.cs.ru.nl) (English) ([reference](https://en.wikipedia.org/wiki/Clean_(programming_language)))
- **Instance Of**: Purely functional programming language, non-strict programming language ([reference](https://en.wikipedia.org/wiki/Clean_(programming_language)))
- **Stack Overflow Tag**: [clean-language](https://stackoverflow.com/tags/clean-language)

## FAQs
### Q: What is Clean used for?
A: Clean is primarily used in academic and research settings for writing high-assurance software, thanks to its purely functional and formally verifiable nature.

### Q: Is Clean similar to Haskell?
A: Clean shares similarities with Haskell, such as being purely functional and non-strict, but it has unique features like uniqueness typing, which helps manage side effects.

### Q: Where can I download Clean?
A: Clean can be downloaded from its official website, [clean.cs.ru.nl](http://clean.cs.ru.nl), where the latest stable version (3.1) is available.

## Why It Matters
Clean is significant in the realm of programming languages for its emphasis on formal verification and high-assurance software development. Its purely functional nature makes it ideal for tasks requiring mathematical rigor, such as theorem proving and compiler construction. The language's uniqueness typing system also provides a novel way to handle side effects, setting it apart from other functional languages. Clean's academic roots and focus on correctness make it a valuable tool for researchers and developers working on safety-critical systems.

## Notable For
- **Uniqueness Typing**: A feature that helps manage side effects in a purely functional setting, distinguishing it from other functional languages.
- **Academic Focus**: Clean is widely used in research and education, particularly in formal methods and compiler construction.
- **Non-Strict Evaluation**: Like Haskell, Clean evaluates expressions lazily, which can lead to more efficient programs.

## Body
### History
- Clean was first released in 1987, making it one of the older functional programming languages still in use today.
- The language has undergone several updates, with the latest stable version (3.1) released on September 22, 2022.

### Technical Specifications
- **Typing Discipline**: Clean supports dynamic typing, strong typing, and uniqueness typing.
- **Paradigms**: The language is purely functional, adhering closely to the lambda calculus.
- **License**: Clean is distributed under the GNU Lesser General Public License.

### Community and Resources
- **Official Website**: [http://clean.cs.ru.nl](http://clean.cs.ru.nl) provides downloads, documentation, and tutorials.
- **Stack Overflow**: The [clean-language](https://stackoverflow.com/tags/clean-language) tag is available for community support.
- **Wikipedia**: Clean has entries in multiple languages, including English, Dutch, and German.

## References

1. [Clean 3.1 (Stable)](https://wiki.clean.cs.ru.nl/Download_Clean)
2. Freebase Data Dumps. 2013