我是Clojure的新手,找不到等效的整数?在Chez方案8.4中,主要针对以下测试用例:
(整数?39.0) => #T
到目前为止我的功能是:
(defn actual-integer? [x] (or (= 0.0 (- x (int x))) (integer? x)))
当x是任意数字类型还是有更好的解决方案时,它是否有效?
感谢。
答案 0 :(得分:2)
嗯,严格来说39.0
不是整数 literal ,因为它最后有.0
部分。该程序的简单实现是:
(defn actual-integer? [x] (== (int x) x))
请注意==
operator:
如果nums都具有等效值(与类型无关),则返回非nil,否则返回false