(define map (lambda (proc lst) (let loop ([L lst]) (if (null? L) '() (cons (proc (car L)) (loop (cdr L)))))))