Как мне написать макрос Clojure для создания более одного выражения?

Можно ли написать макрос в Clojure, который генерирует более одного значения или выражения? На мой взгляд, это невозможно, по крайней мере, не с использованием шаблона синтаксической цитаты `(..).

например, из: [1 4] через [1 (mr 2 3 ) 4] в [1 2 3 4]

или из:

(do
  (prn 1)
  (prn 4))

через:

(do
  (prn 1)
  (mr 2 3)
  (prn 4))

в:

(do
  (prn 1)
  (prn 2)
  (prn 3)
  (prn 4))
7
задан Stefan 21 September 2010 в 18:39
поделиться