Làm việc trên các ví dụ sau đây trong "Clojure trong hành động":Lỗi sử dụng "áp dụng" chức năng trong Clojure: "Không biết làm thế nào để tạo ISeq từ: java.lang.Long" (. P 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))
Đánh giá về REPL:
(with-line-item-conditions basic-item-total 20 1)
Kết quả trong ngoại lệ sau đây bị ném:
Don't know how to create ISeq from: java.lang.Long
[Thrown class java.lang.IllegalArgumentException]
Nó xuất hiện ngoại trừ đang được thứ sau khi quy trình áp dụng được đánh giá.
'apply' là hàm, không phải macro. – amalloy