
quoth Rustom Mody
Here is a grab-bag list that I made for a similar purpose: http://blog.languager.org/2012/10/functional-programming-lost-booty.html
IOW its not really focussed on any language *technology* -- functional or otherwise. Rather it lists out (a bit tersely I guess [?]) what are some key *concepts/perspective* that a programmer needs to get, to think functionally
Looks good, for me it's about the right amount of terse and covers a lot of ground. I don't know if it would help or hinder the learning experience, to acknowledge that there are some trade-offs. This doesn't apply so much to Scala, because (I think - from fiddling around with it for a week years ago) Scala, Objective CAML et al. support mutable variables and loop constructs etc., so ... it's a floor wax AND a dessert topping. But someone who's obliged to use recursive functions to replace the loop-with-mutables functionality he or she is used to, is going to be confronted with some awkward limitations, because loop-with-mutables supports more or less unlimited possibilities, where recursion is (for at least one thing) bound by the need for each iteration to be the same type. That isn't just "you need a new mindset to appreciate this" kind of thing, it's an example of a real obstacle that you just have to learn to get around. Donn