Days 22 to 30 - Finished Haskell from First Principles

So for various personal and non-personal issues in my life, I froze my #100DaysOfCode challenge for a bit. I resumed it again last week as things started settling down properly into their places. I didn’t get much time to blog about it, or perhaps I should say, I got too lazy to blog about my progress. I mean, no one reads this blog anyway, right?

But anyway, I finished the Haskell Book. It feels fucking great to be honest. The chapters and their respective exercises on composing and monad transformers gave me quite a bit of trouble. After reading the same few pages for a million times and climbing through hordes of StackOverflow answers, I finally got through, or at least I think I did. I mean I get what monad transformers are, where it’s used and all that, but I suppose a deeper understanding can only be attained after I actually use it myself in a project or something.

The other chapters other than the ones on Composing and Monad Transformers were on Non-strictness, Basic Libraries, IO, Exceptions and a final project. The chapter on Non-strictness was really insightful, it delves into how code is optimized and changed inside GHC and how that affects strictness, how to make sure that something is strict or otherwise and so on. The chapter on IO is, I believe, pretty important, because there’s just so many analogies and explanations floating around regarding it that often times, it gets beginners like me confused. The authors break down some of these popular explanations and attempt to explain IO how Brent Yorgey did, as seeing it as a recipe for a cake, it’s not the cake itself.

The chapter on Basic Libraries, if you haven’t guessed already, shows us some of the basic libraries that are widely used in Haskell. It shows criterion for benchmarking our code, profiling to check bottlenecks, Map, Set, Vector, String types and so on. It doesn’t go much into details regarding these though, more like giving the reader a taste of what’s out there, why it is that way and stuff, and the reader can go explore in the direction they prefer.

Exceptions was about dealing with errors. It’s something that I’ve been wondering for a while, which means this chapter was kind of an emotional relief for me. Thank you, authors.

So with that, I’m done with the book and the first 30 days of my 100 Days of Code. The next part of this is going to be me trying to make small programs in Haskell, starting with the tutorial for writing a Brainfuck interpreter, followed by implementing Scheme in Haskell, which is another great tutorial.

On the algorithms and data structures side of things, I haven’t touched it in a long time. So I’m planning to start something on that front next week, possibly continuing to study this book on Algorithms in Python by Magnus Lie Hetland. People say it’s a talkative book. Well, it turns out, I love books that can talk.

On another major advancement, I may and probably will start spending some time learning WebGL. How I got here is a long story about dreams and hopes, perhaps for another time. A series of tutorials called WebGL Academy is what I’ve set my eyes upon. Let’s see how much I can actually learn though. I have apparently put a lot of stuff on my plate, but I love it that way. There’s a good reason why I’m so fucking fat.

See you next time and good luck!

comments powered by Disqus