3 ms·
With unique types and offering an alternative to monadic approach to pure functional programming, I always had an eye out for this language. I always found its
by srean 5y ago
With unique types and offering an alternative to monadic approach to pure functional programming, I always had an eye out for this language. I always found its syntax rather clean (no pun intended). Sadly there hasn't be much activity. or at least not much that could be discerned from its public facing website. I would love to see a revival in interest and development.
- cies 5y agoI'd love to learn some about the "alternative to monadic approach to pure functional programming" but the project's website is utterly useless in helping me to find it.
- jonsen 5y agoI remember a rather comprehensive online pdf manual/book back in '99 when I went Clean for a period.
- gonoid 5y agoThe documentation [1] has a bit of information about using uniqueness types for IO and other cases. [1] https://clean.cs.ru.nl/download/html_report/CleanRep.2.2_11.htm#_Uniqueness_Typing https://clean.cs.ru.nl/download/html_report/CleanRep.2.2_11....
- chriswarbo 5y agoClean has used uniqueness types since the 80s. Monadic effects were only discovered/implemented in the 90s. In fact, Haskell 1.0 didn't have monadic I/O either; AFAIK it implemented I/O using a "stream of actions", but that doesn't compose very well (e.g. we can get deadlocked if an earlier action depends on the result of a later action) Uniqueness types are similar to to linear types (as found in Idris, ATS, and recently Haskell), and similar to Rust's 'ownership' model ("affine types"?)
- wakeupcall 5y agoIf I'm not mistaken, wasn't Clean closed source and commercial for a long time? I was very interested years ago, but I kept on thinking that without opening up it would eventually just fade into oblivion and never went beyond the toying phase. A common fate for the many languages with a single and commercial reference compiler/interpreter.
- srean 5y agoI seem to recall the same (of it being closed source initially)