4 ms·
But then monads are a way to think about computations sequentially. If I write highly sequential code in a C-like language, in many cases most of the code is ju
by fhars 4y ago
But then monads are a way to think about computations sequentially. If I write highly sequential code in a C-like language, in many cases most of the code is just boilerplate made necessary by the absence of native support for monads:
int ret = doStepOne();
if (ret == RESULT_OK) {
ret = doStepTwo();
}
if (ret == RESULT_OK) {
ret = doStepThree();
}
return ret;
would just be
doStepOne() >>= doStepTwo() >>= doStepThree()
in a language with support for monads.
- xigoi 4y agoYou can have support for monads without using them for IO.
- Iceland_jack 4y agoSeparating IO is kind of the killer feature, something like `rand()` is not an int unless you're reading dilbert[1] or xkcd[2]. Basic equations break down in the face of an Int-valued IO-action being conflated with an Int [1] https://dilbert.com/search_results?terms=Random+Number+Generator https://dilbert.com/search_results?terms=Random+Number+Gener... [2] https://xkcd.com/221/ https://xkcd.com/221/