rubyで書いたプログラムをgaucheでも

gaucheの方が書きやすかったです。
処理を頭の中で分割しやすいような気がします。

(define (f seed)
  (define (enhance l)
    (map (lambda (x)
           (if (list? x) (enhance x) (map (cut * x <>) seed)))
         l))
  enhance)

(define (ntimes-function f n)
  (lambda (x) ((apply compose (make-list n f)) x)))

(define (ku-n n size)
  (let* ((seed (iota n 1))
         (g (f seed)))
    ((ntimes-function g (- size 1)) seed)))