Недавно я разговаривал с коллегой и пытался рассказать ему о красоте (Common) Lisp. Я как-то пытался объяснить макросы, так как я считаю макросы одной из смертоносных функций Лиспа, но я потерпел неудачу - я не смог найти хороший пример, который был бы кратким, лаконичным и понятным для "простого смертного" программиста (десятилетие опыта Java, в целом умный парень, но очень небольшой опыт работы с языками "высшего порядка").
Как бы вы объяснили макросы Lisp на примере, если бы вам пришлось?