3 ms·
> But after a few times you understand that being defined and being executed are different things and then you wrap the execution. In this example, you've had
by maehwasu 11y ago
> But after a few times you understand that being defined and being executed are different things and then you wrap the execution.
In this example, you've had to internalize a bit of extra knowledge, and have an extra "gotcha" to watch out for. A job that could have been done by a computer, if things were kept pure, now has to be done by you, incurring slight amounts of mental overhead.
I don't program routinely in Haskell (although things are quickly headed in that direction), but I think the sentiment of that community is:
1. Keeping a large system consistent in your head is hard
2. Offloading the constant checking of that consistency, in any amount, to a computer, is a huge win that compounds quickly over time.
Note that the "hardness" of holding a large system in your head, and the "hardness" of Haskell's learning curve have to be qualitatively different for those assumptions to hold. In my experience, they are; essentially, you're making a large upfront cognitive investment in order to save slight amounts of mental overhead every day.
- AnimalMuppet 11y agoI think you just refuted the article. > Offloading the constant checking of that consistency, in any amount, to a computer, is a huge win that compounds quickly over time. True. And therefore offloading a less amount to the computer (by being mostly but not totally functional) is less of a win, but still a win.