1.1.3 Evaluating Combinations

「順序立てて考える」という問題を、個別的に捉えよう


combinationを計算するには…

  1. 入れ子の中身を計算する
  2. operatorをoperandに作用させていく

ここにミソがある
combinationを「計算」するのに、まず、入れ子の「計算」をしている
つまり計算の規則自体がそもそも、再帰的性質を持っている


再帰起の概念がいかに簡潔に、複雑な構造を持つ過程に用いられるか

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

は、四回計算される



この過程を、「木」であらわしてみる
枝(+, 3, 5, 7)を持つ節をcombinationとする(逆に言うと節から非演算子が伸びている)
木としてみると、非演算子が上流に流れていくのが良くわかる


一般に、木のような階級構造を持つ対象を扱うのに、再帰は有用である


  • 数字のもつ値は、その数字自身が「名づけた」数
  • 演算子のもつ値は、対応する動作を実施する、一連の機械語命令
  • それ以外の名前の値は、その名前でenviromentに収められた対象