>>785
出来ました。ありがとうございます
(define (cata l)
(define (flat1 x) (fold append () x))
(define (aux n l)
(map (lambda (x)
(map (lambda (y)
(if (and (pair? x) (null? (cdr x))) (cons (car x) y)
(cons x y)))
(cata (drop l n))))
(cata (take l n))))
(define (aux2 n l)
(if (<= n 0) ()
(append (flat1 (aux n l)) (aux2 (- n 1) l))))
(if (< (length l) 3) (list l)
(aux2 (- (length l) 1) l)))