I think I understand most of the ideas and advantages of functional programming, which I've been exposed to a lot lately. I have this feeling of not being completely sold and I find a programming system with, ideally, no inputs and outputs extremely annoying. A pure functional program is a black box that nothing goes into and nothing comes out of. That's something only a mathematician could love.
Yet, here I am reading and working through Real World Haskell by O'Sullivan, Stewart, and Goerzen, which is a complete, on-line version of a book that is yet to be published by O'Reilly. The book is complete though a little slow in the sense that the presentation tries to be as thorough and clear as possible, almost to a fault.
The authors have done an interesting thing in putting this copy on-line. It is an interactive copy that allows anyone to post comments about any section of the book which means suggestions for improvements, corrections to errors and such. Fascinating! Thus the book is extremely well reviewed though, in fact, it may be a little overdone. But maybe not. Functional programming starts off simple and easy then rapidly gets weird, so maybe this is exactly what's needed.
See Also:
Tim O'Reilly Radar
Haskell.org