1+1を計算するために、関数型言語を作ってしまった
Needed 1+1, built a functional programming language

データ構造の課題で1+1+1を二分木で評価する必要があった。評価器を作り始めたら、変数、クロージャ、ハッシュテーブル、アリーナアロケータ、チャンクアロケータ、そしてガベージコレクタまでC言語で実装することに。fib(40)が12GB以上のメモリを消費してOOMでクラッシュしたため、不要ノードを回収するGCの構築に踏み切った。
fib(40)はOOMでクラッシュする前に、文字通り12ギガバイト以上を消費した。なぜか? 約13億個のノードを生成するからだ。ノードあたり48バイトとして、約62.4GB分のノード割り当てに相当する。