( map square '(3) )
(cons (square (car '(3)) (map square (cdr '(3))) )
(cons (square 3) (map square '( )) )
xが空リストでない
新しいmapを駆動(map4回目)
(define (map f x)
(cond ((null? x) nil)
(else (cons (f (car x)) (map f (cdr x)))) ))