図 4.5: すべてのノードを評価するプログラム(naive.kl1)
図 4.6: naive.kl1 の実行トレース(eval/2のリダクション)
プログラム(naive.kl1)を図4.5に示す. eval/2は, 下につながるノードがあればeval/2をフォークし, フォークによって求まった2つの評価値から自ノードの評価値を決定する(5,6行目). 下につながるノードのない場合(自分がリーフの場合)は 評価値をすぐに返す(7,8行目). and_node/3及びor_node/3は2つの値のANDあるいはOR演算を行なう.
eval/2のリダクションの様子を図4.6に示す. このプログラムはすべてのノードを評価してしまうので 図にはすべてのノード(17ノード)が登場した.