For quite some time I’ve been searching for the best tool for supporting my studying. I’m a programmer, and am interested in quite a lot of different subjects, ranging from programming languages, distributed systems, compilers, machine learning, big data, etc. Something I’ve noticed is that, propietary tools come and go, and having all your notes siloed on someone else’s servers is not what you probably want. So, I’ve been looking at plain text implementations of knowledge management systems lately.
I want to explore the Applicative functor, more than a functor and less than a monad. The reason to use it is that, by being less powerful, it can be applied in more situations. This post is a companion to the talk I gave at HaskellMAD, you can find the slides of the talk here. Applicatives or Idioms, as they were named back then, were introduced in 2008, in a Functional Pearl named Idioms: applicative programming with effects.