4 ms·
I think the killer feature is the separation of IO and pure & mutable functions. Pure functions are easy to reason about, easy to test, have predictable perform
by alephu5 6y ago
I think the killer feature is the separation of IO and pure & mutable functions. Pure functions are easy to reason about, easy to test, have predictable performance and are well suited for concurrent applications. IO is crucial for a useful application but it forces you to sacrifice some guarantees.
What I like about Haskell development is that the compiler enforces this separation, so when things misbehave you can just focus on the IO components. I think this would fit well into the paradigm rust had for marking variables as "mutable".
- tutfbhuf 6y agoI wonder if that would be possible without types. Maybe some kind of IO decorator, that enforces the separation, to allow for enforced pure functions in an untyped language.
- nyanpasu64 6y agoSounds like an effect system. But I haven't used them either.
- gleenn 6y agoClojure...?
- jacobr1 6y agoDecorators are just a way to introducing typing via another mechanism.
- runeks 6y ago> Pure functions are easy to reason about, easy to test, have predictable performance and are well suited for concurrent applications. Predictable performance is a property of a compiler, not a pure function (a language construct).