Работаем над следующим примером в «Clojure в действии» (стр. 63):
(defn basic-item-total [price quantity]
(* price quantity))
(defn with-line-item-conditions [f price quantity]
{:pre [(> price 0) (> quantity 0)]
:post [(> % 1)]}
(apply f price quantity))
Оценка на REPL:
(with-line-item-conditions basic-item-total 20 1)
В результате возникает следующее исключение:
Don't know how to create ISeq from: java.lang.Long
[Thrown class java.lang.IllegalArgumentException]
Похоже, что исключение генерируется после оценки процедуры применения.
apply
— это функция, а не макрос. - person amalloy   schedule 25.08.2012