Thank you for the links, although I already know the basics of FP(or Haskell at least, good enough to solve most of the Project Euler problems I've been able to do with OO) and at this moment Haskell seems to be the best tool for learning FP for me so Im going to stick with it :-). And if I know one FP-language really well would't it be just like with procedural programming languages, trivial to pick up a new language?
What Im after is a full understanding of what happens "under the hood", I've read some articles about lambda calculus, higher order functions, monads etc. but I get lost in all the math and abstract thinking.