Speeding Through Haskell - http://www.sthaskell.com/
Haskell is an awesome programming language. It's a lot more mathematically rigorous than others, which means that programs can be proven to be correct and in most cases, if they compile, they will run just fine too. This involves new challenges, however. For instance, you can't change even a single "variable". Everything is done via recursion and other tricks. Don't worry, it'll seem very natural once you try it out. - scotu