1
在Clojure中的勇敢和真實,第8章,一個函數調用if-valid
建議(當時拒絕)抽象掉驗證檢查的重複部分:澄清Clojure的評價
(defn if-valid
[record validations success-code failure-code]
(let [errors (validate record validations)]
(if (empty? errors)
success-code
failure-code)))
筆者解釋說,功能在上述狀態下將不起作用,因爲success-code
和failure-code
將在每個if-valid
呼叫上進行評估。我的理解是,if
函數的測試將返回true或false,並指示成功或失敗代碼是否運行。請有人可以解釋爲什麼if
的每個if-valid
呼叫都會被評估嗎?