在Clojure中实现整数?在计划中

时间:2013-09-27 22:46:22

标签: clojure scheme

我是Clojure的新手,找不到等效的整数?在Chez方案8.4中,主要针对以下测试用例:

  

(整数?39.0)   => #T

到目前为止我的功能是:

(defn actual-integer? [x] (or (= 0.0 (- x (int x))) (integer? x))) 

当x是任意数字类型还是有更好的解决方案时,它是否有效?

感谢。

1 个答案:

答案 0 :(得分:2)

嗯,严格来说39.0不是整数 literal ,因为它最后有.0部分。该程序的简单实现是:

(defn actual-integer? [x] (== (int x) x))

请注意== operator

  

如果nums都具有等效值(与类型无关),则返回非nil,否则返回false