のようにをn回作用させる関数を返す関数をかく。
(define (compose f g) (lambda (x) (f (g x)))) (define (repeated f n) (define (sub-repeated n) (if (= n 0) f (compose f (sub-repeated (- n 1))))) (lambda (x) ((sub-repeated (- n 1)) x)))
とやればいいのかな。(- n 1)がきたないので、たぶん他のスマートな方法はあるはずだけど。
gosh> ((repeated square 2) 5) 625
とりあえず動く。