Whether they are more expensive or not is a function of implementation and the language runtime.
There is something wrong with a for loop, just like there is something wrong with goto--it's at too low a level of abstraction. A goto could signify any sort of jump; a for signifies any sort of repeated operation. A fold or a map or a filter or a zip signifies a very specific type of repeated operation that is hard to mess up.
Rubbish - your head is in the clouds. This is the real world where we solve problems with the tools we know and work on a common ground to everyone else.
I get the feeling a lot of people on HN just fell out of university or work in a niche area. The rest of us don't care for such isolation and prefer to work with deterministic and well known tooling.
<sarcasm>
If that is the case, then the summation operator in mathematics should be replaced with Lambda Calculus or the world will fall apart...
Linux obviously doesn't work because it uses for loops in the Kernel.
Windows needs to be rewritten in Haskell or LISP to make it pure.
OMG I just realised, I'm not allowed to walk a list in C without implementing car and struct pair. Damn my stack just blew.
Your examples reveal that you don't get the point. Using a for loop instead of a higher-level abstraction like reduce or sum is a lot like using lambda calculus instead of a summation in mathematics. We're trying to climb out of the Turing tarpit here by introducing useful abstractions, just like the summation operator was once introduced to make mathematics easier.
Closures are way more expensive if you include the call overhead.