> Why are you bringing up the fixed point combinator?
I didn't mean the fixed point combinator, I was responding to "So all recursion is equivalent to a for loop + a stack." A recursive algorithm implemented with a for loop and a stack instead of function calls and the processor stack isn't equivalent to recursion, it is recursion, just not the lexical kind. This is just semantics and we agree with each other.
> Why should I address this? We are talking about the equivalency between HOFs and
loops.
Because for loops are equivalent to recursive procedures, not to map and reduce; map and reduce are much more restricted.
You can implement a for loop using pure function application, and you can implement recursive pure functions using a for loop. Map and reduce live on a higher abstraction level, and because the two lower level strategies are equivalent, which one is used is irrelevant. Saying that they're not functional because they can be implemented with a for loop makes as much sense as saying that a for loop is functional because it can be implemented with pure function application.
To me, a for loop is an imperative construct, and map and reduce are functional constructs, regardless of how any of them are implemented.