On Egghead.io there's a free course available on functional programming. Your teacher is Professor Frisby, who is in fact a hedgehog. Yup, you've read that right. The tempo of the course is quite fast, so you might have to, like me, pause or rewatch the videos to get the most out of it.

This course teaches the ubiquitous abstractions for modeling pure functional programs. Functional languages have adopted these algebraic constructs across the board as a way to compose applications in a principled way. We can do the same in JavaScript. While the subject matter will move beyond the functional programming basics, no previous knowledge of functional programming is required. You'll start composing functionality before you know it.