@mo пользуясь случаем прорекламирую лиспы tonsky.me/blog/clojure-macros/
(там то код парсится только один раз (если все правильно сделать))