If you are new to programming, I usually recommend “How to Design Programs”. It is the only text I know of that seems to teach people how to design programs, rather than expecting that they’ll work it out themselves based on writing code for a few years.
For a starting point for programmers, I usually recommend the Spring 2013 version of CIS194 – “Introduction to Haskell” – from UPenn. The material is good quality and it has great homework. Our meetup group relayed the lectures, so there are videos available here.
“Introduction to Functional Programming using Haskell (2nd Edition)” by Richard Bird is also really good if you want to get some hands on experience with using equational reasoning to prove things about programs, or to partially synthesize programs from their specifications. It is targeted at undergraduates but is more complex than CIS194.
“Parallel and Concurrent Development found in Haskell” by Simon Marlow is ideal for doing additional applied use Haskell, but I’d do CIS194 first.
I currently work for an organization that runs free of charge FP courses. There can be an introductory course in this article that you can do by yourself but is challenging – we just covers a subset of this content when we actually function the course. There can be an applied course in this article that’s easier to tackle lacking any instructor, but requires you are comfortable with the ideas from what we instruct through the introductory course.