4 ms·
Only real difference is that `fold` is denser. Both require prior knowledge to understand in their respective paradigms. Adding numbers like this is not common
by wannabe44 9d ago
Only real difference is that `fold` is denser. Both require prior knowledge to understand in their respective paradigms.
Adding numbers like this is not common in real world code. Now let's say instead of adding x, you have too look up X in a cache with an additional "type" param and update a metric of cache hits (or misses). You have to define a free function to keep your fold readable and understandable. In for loop it's much easier to understand.
- KPGv2 5d ago>You have to define a free function to keep your fold readable and understandable. I agree. But you'd do that for a for-loop, too, unless you want a bloated for-loop. > In for-loop it's much easier to understand. I have to disagree there. You'd still be working with a free function, or you'd be working with a bloated for-loop body. Combining cache loopkups, metric tracking, etc. runs into SOC issues that IME for-loops just let imperative developers get away with until it comes time to test their code. Furthermore, free functions aren't bad. They're good. They're a self-documenting abstraction. Unless you name it `function_one` or something. Having my fold lambda do its primary business role but call `update_cache_and_metrics` makes it unnecessary for someone reading the flow of logic from even needing to go read the body of that free function.