我有一些算法因爲某種原因吐出NaN,我都希望只是暫時過濾掉這些不好的結果,稍後再去找出問題所在。因此,我需要檢查一個值是NaN,我該怎麼做?檢查clojure中的NaN
我想我可以使用的伎倆,一個楠唯一的價值不等於本身,所以我寫了下面的功能
(defn NaN?
"Test if this number is nan"
[x]
; Nan is the only value for which equality is false
(false? (= x x)))
如果我問(NaN? Double/NaN Double/NaN
這工作)。但是,如果NaN值處於某種數據結構(如同情況),並且已經準備好在某種意義上進行評估,那麼這是行不通的。例如
(def test Double/Nan)
(NaN? test)
返回false。
(number?Double/NaN)=> true - 呵呵! – Hendekagon 2013-04-22 04:55:13
確實!這就是我的原始代碼。 – zenna 2013-04-22 08:56:52