first of all, lisp's map is different than haskell map. Lisp's map takes a variable number of arguments, so you can write something like
(map + '(1 2 3) '(4 5 6)) --> (5 7 9)
still, if you want a nice definition of a haskell-like map in scheme, I'm guessing it would be something like
(define (map f list)
(foldr nil (lambda (e acc) (cons (f e) acc)) list))
which of course is the equivalent of
map f list = foldr [] (/ e acc -> (f e):acc)) list
which of course may seem shorter, but only because of syntax, and if haskell macros are any indication of, it matters little.
(The same applies to pattern matching vs. accesor functions, unless you like 20+ functions breaking when you add a field in your data type).