SICP 読み (172) 4.1.6 内部定義

今日も体調悪くて微妙なエントリ。がしかし、問題 4.21 凄い。ぼさっと本を眺めていてびっくりしてしまいました。a の設問は別途になりますが、b のソレを以下に。

(define (f x)
  ((lambda (even? odd?)
     (even? even? odd? x))
   (lambda (ev? od? n)
     (if (= n 0) #t (od? ev? od? (- n 1))))
   (lambda (ev? od? n)
     (if (= n 0) #f (ev? ev? od? (- n 1))))))

なんと言えば良いのか分かりませんが、lisp/scheme 何でもアリに見える。(を