(define (map proc)
  (lambda (items)
    (if (null? items)
	'()
	(cons (proc (car items))
	      ((map proc) (cdr items))))))


(define map
  (lambda (proc)
    (lambda (items)
      (if (null? items)
	  '()
	  (cons (proc (car items))
		((map proc) (cdr items)))))))



((map square) '(1 2 3))
