The thing with using higher-order functions isn't learning the definitions (which are rather simple, really,) but figuring out how to use those tools.
And for that you need practice. Start from describing trivial problems (word count, for example), and advance to more complicated ones. Any good book on functional programming would have lots of exercises (http://mitpress.mit.edu/sicp/ is probably the most famous, but is surely not the only one.)
I grokked functional programming by learning Calculus of variations, but YMMV.
I can confirm that it is a great way to learn about MapReduce.
Link: http://github.com/irskep/mrjob/tree/py3k
I will likely totally restart the py3k port now that I know what I am doing a bit better. I've been writing Python 3 for about, oh, two weeks.
Disco (http://discoproject.org) is a really elegant MR framework implemented in erlang and python, with additional support for jobs in C and Java. I've used it for a little over a year and am convinced it is the superior MR platform (Hadoop's terasort victories notwithstanding). New features are being integrated very quickly, the core platform is rock solid, management is simple and it's extremely flexible.