My attempt at explaining monads It is an unwritten law, that everybody learning Haskell sooner or later has to write a tutorial or explanation of the topic of monads. (The fourth monad law.)1
So here is my attempt at explaining monads, I will try to give an intuition on what monads are from the practical view of a developer. I’m going to use examples in Haskell, so yes, this time I’m going to assume, some basic knowledge of Haskell – but a seasoned developer might still be able to figure out the essence of the examples without learning Haskell.
Making your brain tingle I love the feeling you get, when during learning new concepts suddenly everything starts to fall into place and ideas which seemed hard to grasp become intuitive. I’d like to describe the feeling of such moments as “tingling of the brain”.
One area which makes my brain tingle on a regular basis is the combination of Haskell and category theory. The topic of this blog post is one simple example: I’m going to show a way of thinking of functions as functors which, at least to me, makes it intuitive.
Argh! Tutorial Part 0 This is a prequel to part 1 of the Argh! tutorial series. As it turns out hacking Argh! code is much more fun, when you are able to actually run it.
So in this part I’ll show you how to get your Argh! interpreter1 up and running.
For the Lazy Folks: JS Argh! There is an implementation of Argh! in javascript which can be run directly in your browser.
Argh! Tutorial Part 1 In 2004 I created a little esoteric programming language called Argh!, which, more than ten years later, is still some fun to a small bunch of people. One noteworthy phenomenon in the history of Argh! is, that there are seemingly more people creating new implementations of interpreters, compilers and tools for Argh! than people writing actual Argh! programs. So I decided to start this series of Argh!
My first blog post So here it is, my first “real” (read: not micro) blog and of cause content is needed to bring it to live.
That’s the reason for, and sole purpose of this post: generate some pseudo content. It’s needed to test all the fancy technological stuff which brings this blog to live and it’s needed to start fulfilling all the promises silently made by the title of this blog.