再帰
[id:mimpoo:20060124#p2]
再帰に苦しんでいる人を発見。
再帰は「場合わけ」だと思えばわかりやすいんですよね。あるいは「数学的帰納法」とか。
例えば、Hello!をn回出力するプログラム…
手続き hello n について
n=0の時 → 終わり
n=kの時 → Helloを出力し、hello (k-1)を実行
Schemeにすれば、こんな感じかな?
(define (hello n) (if (= n 0) #t (begin (display "Hello!") (newline) (hello (- n 1)))))
単純なループだと、冗長な気がしますけど、ループの条件が複雑になると、場合わけの方が考えやすいことが多かったりします。