September 22, 2016
Almost 10 years ago ![]()
a nostalgic link from an old man ![]()
The article makes a crucial error in the Monoid section:
For completeness - the second and the last rule for a Monoid is that
mappend x yshould be equal tomappend y x(5 + 6 == 6 + 5).
The rule instead is that mappend has to be associative, no requirement on commutativity
Story time:
I started my journey programming microcontrollers. I liked C++ until I reached the pointers part. The spaghetti code I had to write was too clunky to manage. I built a state machine and stuff (a dmx controller) but never really got further. Always felt like I was missing an abstraction layer.
Then, I graduated art school and tried to build a personal website (that was simply capable of detecting the browser that was viewing it) in joomla only to be disgusted by it and switch to Drupal which also eventually disgusted me enough for me to switch to attempting what I wanted to do in swift with an actual app
.
Then, swift hipster tutorials started to get me into FRP and I didn’t know enough to know that FP is not FRP. So I begrudgingly learned category theory by listening to podcast after podcast driving to work until I somehow soaked the info in without realizing it. Then, I tried to do FP in Python using Coconut until that also disgusted me enough. Then, I stepped away from the computer (except as a Linux sysadmin) and studied programming as an intellectual exercise rather than a practical one in my off-time for years. Then I stumbled upon Cardano, then Nix and Haskell from that. Haskell (and Nix) were the first technologies I learned that finally didn’t disgust me (as hard as I tried to uncover the ugly bits). To this day, I still haven’t gotten around to that personal website. But 20 years later, I’m glad that Drupal’s (and by extension php’s) inadequacy steered me here.