elispのmapcarが使えない

Common Lispのmapcarと使い勝手が違うっぽい.時間がないので問題点だけ列挙.こういうことがしたかった.

(defconst muse2puki-muse-list1 " - ")
(defconst muse2puki-muse-list2 "  - ")
(defconst muse2puki-muse-list3 "   - ")

(defconst muse2puki-puki-list1 "- ")
(defconst muse2puki-puki-list2 "-- ")
(defconst muse2puki-puki-list3 "--- ")


(mapcar '(lambda (tmp-from tmp-to)
	  (save-excursion
	    (goto-char (point-min))
	    (while (re-search-forward tmp-from nil t)
	      (replace-match tmp-to))
	    '(muse2puki-muse-list3-regexp muse2puki-muse-list2-regexp muse2puki-muse-list1-regexp)
	    '(muse2puki-puki-list3-exp muse2puki-puki-list2-exp muse2puki-muse-list1-exp))))

けれどelispのmapcarはリストをふたつ以上取ることができないっぽい.仕方ないのでベタ書きしてしまった夏の夜.

(2012-03-25追記)

hayuさんのご指摘でmapcar*関数なるものがあり,それで実現できることを知りました.hayuさん情報ありがとうございます!

(mapcar* #'+ '(1 2 3) '(10 20 30) '(100 200 300))
(111 222 333)