Haskellは遅延評価を採用した言語です。第9回では,遅延評価によってプログラムの実行が効率的になる場合がある一方,遅延評価が原因で領域漏れ(スペース・リーク)が発生する可能性があることを説明しました。 プログラムの中で領域漏れが生じている個所は,一見しただけではなかなかわかりません。そこでGHCなどのHaskell処理系では,ヒープの使用状況を見るためのプロファイラが用意されています。今回は,ヒープ・プロファイラの情報を手がかりにして領域効率の問題がある個所を探す方法を説明します。 今回の記事には一つ注意点があります。この記事で使用する例や分析は,2011年3月3日にリリースされたGHC 7.0.2でのコンパイル結果に基づくものです。将来のGHCでは,最適化機能やライブラリの改善などによって,異なる結果になる可能性があります。実際にプログラムを効率化する際には,使用する処理系での結果に