より慎ましく: 少ないヒープで動作するプログラムを作る

“空間リークがあるみたいなんです…” あなたのプログラムを+RTS -S付きで走らせて、全ての疑いを取り除きましょう!(ヒープ使用量が刻々と増していくのが分かるでしょう…) [うーん…これは-G1 RTS optionを付けるともっと簡単になるかもしれないね、つまり… ./a.out +RTS -S -G1...]

ここでも、プログラムの空間的振る舞いを明らかにするための基本的な道具はプロファイル機能(第5章. プロファイルを取る)である。

前節で正格な関数は速いプログラムを作る上で有益だと述べたが、空間利用についても正格な関数は良い。正格な関数はすぐに仕事に取りかかり、ヒープをクロージャ(何かが必要になったときにどうやって評価するかをシステムが覚えておくためのメモ)で埋めつくすことがない。