What would you recommend for an experienced OO programmer who wants to learn more about functional programming?
Since reading Mark Dominus's Higher Order Perl, I've begun using more functional techniques in my day-to-day work, such as closures, currying, and lazy evaluation. However, Perl is of course not a purely functional language (it's not purely anything) and I'm curious to learn how functional languages like Haskell accomplish common tasks. However, the last time I tried to learn Haskell via a few web tutorials, I found its rather terse syntax intimidating (and I'm a Perl guy.) Do you have any recommendations for a gentler introduction to Haskell or FP in general, and what are the advantages and disadvantages of other functional systems like Lisp, Erlang and F#?