2014-12-19 47 views

回答

0

如果你不想依賴外部庫,clojure的(assert)支持一個可選的消息。

的缺點是,你將失去一個:pre的可讀性,必須將結果保存爲:post檢查中間變量(或在某些宏魔術包起來)。

簡單的例子:

(defn mysqrt [x] 
    ;; preconditions 
    (assert (pos? x) "Positive numbers only") 
    (let [y (Math/sqrt x)] 
    ;; postconditions 
    (assert (number? y) "Some strange error happened") 
    y))