1.2.5 最大公約数

一日一節ぐらい行きたいところだけど、仕事が入るとペースがすこぶる鈍る。早く4章まで行きたい。

さて、Euclidのアルゴリズム。一番最初に習ったのがいつかは忘れたけど、便利なアルゴリズム。
でも、このアルゴリズムの一番の妙なところと言うのは、完全再帰定義にも関わらず、自然に末尾再帰の形になっていることではないだろうか?

(define (gcd a b)
  (if (= b 0)
    a
    (gcd b (ramainder a b))))

何となく美しく感じてしまうのは、気のせい?