Showing posts with label Write Yourself a Scheme in 48 Hours. Show all posts
Showing posts with label Write Yourself a Scheme in 48 Hours. Show all posts

Tuesday, 3 March 2015

Mountains of Monads

I'm still swamped in the midst of Write Yourself a Scheme in 48 Hours.

I recommend against kicking off on that project if:

  • You do not know what a monad is and do not understand how they work. 
  • You have not parsed anything before. 
  • You do not know what an interpreter is. 
I started off this project with all those, and I am still struggling with the first one. 

As a result, I can reliably inform you that you can make a good start addressing the first two points with Monadic Parsing in Haskell by Hutton & Meijer.
I am still working on the last bit about interpreters, but we are getting there. 

Sunday, 28 December 2014

Everything Is A Monad

In my household, functors, applicatives and monads have been bad words for some time.

I have since worked out that pushing me to Write a Scheme Interpreter in 48 Hours was to get me to learn more about monads.

I'm struggling a little with understanding the bind operator and how it works. I'm somewhat familiar with do notation, but I am not quite there yet with the IO monad either.

I am currently reading Learn You A Haskell's section on monads as well as working through a handful of basic exercises from How to Design Programs to familiarise myself with Scheme and it's syntax.

This thing is going to take me much more than 48 hours. :P

Friday, 26 December 2014

Write Yourself a Scheme in 48 Hours

The Programmer Bear told me shortly before Christmas that he thought I was ready to tackle Jonathan Tang's tutorial to write a Scheme interpreter.

This was great news for me because I was pretty keen earlier on when I first heard about it, but not understanding what an interpreter actually does put a damper on that.

I am in the midst of the second chapter now, and so far it's pretty good. It touches a fair bit on topics that I want to learn more about, particularly IO and monads.