Finally returning to my blog....what I have been up to? Well, after some exploration of Elm, it became apparent how much Elm had been influenced by Haskell. And, having more use for a strongly-typed, functional general-purpose language than a strongly-typed, functional browser-specific language, I decided to delve into Haskell.
I've not been disappointed. That said, the learning curve looks a little bit like a mountain range, so I've had many false starts, interspersed with halting realizations that I haven't made as much progress as I thought I had, and that some concepts have eluded me. It's been frustrating but fun. I've never come across such an orthogonal set of concepts in a programming language - it's really quite beautiful in a mathematical sort of way. (And this is coming from someone who never got beyond High School trigonometry).
To learn Haskell, you need at least a couple of books. But the book I strongly recommend working with is Haskell Programming From First Principles, by Christopher Allen and Julie Moronuki. This work is truly geared for all levels of understanding, and takes the reader systematically through all the concepts needed to learn the language properly. It is well-written and very thorough, and emphasizes immediate application of knowledge through hands-on exercises. At over 1,000 pages, it may seem imposing, but this is really a testimonial to the care its authors have taken in ensuring that every concept is fully explained - which is very important because it's not like the widely-used imperative languages we're all used to.
I can't recommend Haskell Programming highly enough. It might not be the only book you'll want for learning Haskell, but it certainly is the one you'll want to get you started properly. And for me, I think it will continue to be my primary pedagogical Haskell resource.
And when I'm ready to return to Elm, I'm sure my Haskell-fu will go a long way.