Wow, its been a while since I posted here. But I'm pretty psyched to be doing the last post from this book! That said, I should say that one of the things that kept me from finishing it off is that I really found the last section to be rather poor, not providing much support for the exercises posed at the end. While frustrated with the material, rather than skip it, I figured I would put the book down for a while, and if I came across some helpful resources I would revisit it. I actually kind of forgot about it for a while, until a blog post I read recently on monads reminded (and inspired me) to try to tackle it again.

This final section of the Haskell chapter attempts to cover types, classes and monads in Haskell. I'm not going to try to summarize it, as I don't think it is particularly well explained. I will point to two other resources I found useful.

This first is the blog post I mentioned above and it is a really good explanation of monads using JavaScript as the implementing language. If you are just more used to a curly brace language (but are comfortable with first class functions and closures), then I definitely recommend it if you have had trouble understanding monads.

The second is a the section from the excellent Learn you a Haskell for Great Good! on making your own types.

That said, even with this material, I couldn't really complete the exercises, so I did what I could and I've decided to call it for now and move on. Maybe some other time, with a more complete introduction to Haskell, I'll look at the language again.

I will include my measly attempt at one of the questions (given my interpretation, which i have also included, given that the question did not make complete sense to me), if you want to see my failed attempt at question two (with my failed attempt to create a recursive type). It is in the github repo.

Ultimately, I'm still very glad to have gone through the book (and even appreciate the re-introduction to Haskell at the end). Though in a sense I am not actually finished! There were Seven Languages in the tour and I skipped Ruby since I was already familiar with it. I planned on replacing that with another language and the next post will be about options I've been considering (and maybe even the one I settle upon!).