Re:From Imperative to Functional: how to make the leap
by eru on Wednesday February 27, 2013 @11:09AM
(#5293035)
Yes. But in practice we almost never recurse through a data structure directly. We once recursively define a combinator to fold the datastructure, and then always use that combinator for working with the data structure.
I don't think Haskell is really the best choice of language for demonstrating these FP concepts simply because Haskell's syntax is a little cryptic to those who haven't studied it. Lisp would have been a more readable choice since the syntax is trivial.
Also, you didn't touch on recursion, which is a key concept in FP. The idea of having a function call itself repeatedly in order to loop through a data structure, instead of iterating over the data structure by mutating a counter variable, is a huge paradigm shift for people who are new to FP.