Haskell memoization and evaluation model

I am tackling the Advent of Code challenges in Haskell. In particular, Advent of Code #10 was fun (spoilers clicking on that link, but no spoilers in this blog post itself). Part two required using memoization to be solved, and I had already used memoization in other programming languages but not in Haskell. So I learned the hows and the whys of memoization in Haskell – thus the reason why this article exists.

In order to learn about memoization in Haskell, I did a quick Google and it led me the Memoization article on the Haskell Wiki. That article is good, but it only explains the how, not the why. I will cover both how and why in this blog post.

Continue reading “Haskell memoization and evaluation model” →

Proofs and computation with trees

In this post, I will make the analogy between trees and proofs and computation.

Lately (after a long pause), I started reading Logical Foundations again and started re-doing the exercises for the latest version (6.5). While doing the proofs this time, I kept thinking about tree traversals, so that inspired me to write this post.

Continue reading “Proofs and computation with trees” →