1.1.3 Evaluating Combinations #1

結合を評価する話。この章でのゴールの一つは、手続き的に考える上での複数の問題をばらばらにすることだ。

【結合の評価手順】

  1. 結合の副次式 (subexpression) を評価する
  2. 最左の副次式(演算子(operator))の値を、残りの副次式(オペランド(operands))の値に適用する。

評価ルールは通常「再帰的」である。1番目のルールを含む時、その1番目のルール自身で再帰的に呼び出される必要がある。

ex.再帰的な評価が行われる例 (4つの異なった結合)

(* (+ 2 (* 4 6))
   (+ 3 5 7))

この式を表すと fig.1.1 のようになる。

  • 各結合はノードから伸びた枝(演算子オペランドがぶらさがっている)や演算子オペランドそのもので表現されている。
  • 終端ノードは演算子や数字である。
  • 再帰」(recursion) は、階層的で木の様なオブジェクトを扱うには、非常にパワフルな技法である。
  • 「値を上へと濾過する」(percolate values upward) 評価ルールの形式は、tree accumulation として知られている。

※ tree accumulation の訳、なんだろう…まだ日本語訳を発見できない私…

(1.1.3 #2 へ続く)