2 ms·
I'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
by cies 5y ago
I'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"?)