2
我是新来Clojure,并找不到相当于整数?在来自Chez方案8.4,主要用于测试案例如下:在Clojure中实现整数?在计划
(?整数39.0) => #T
我想出到目前为止的功能是:
(defn actual-integer? [x] (or (= 0.0 (- x (int x))) (integer? x)))
当x是任意数字类型还是有更好的解决方案时它工作吗?
谢谢。
我是新来Clojure,并找不到相当于整数?在来自Chez方案8.4,主要用于测试案例如下:在Clojure中实现整数?在计划
(?整数39.0) => #T
我想出到目前为止的功能是:
(defn actual-integer? [x] (or (= 0.0 (- x (int x))) (integer? x)))
当x是任意数字类型还是有更好的解决方案时它工作吗?
谢谢。
嗯,严格来说39.0
不是整数文字,因为它在末尾有.0
部分。一个简单的实现过程将是:
(defn actual-integer? [x] (== (int x) x))
注意,==
operator:
返回非零如果NUMS都具有同等价值(类型无关),否则为false
我用Clojure 1.5.1测试了这个版本,下面返回false:(actual-integer?3.0) – FromWhereToWhere
@FromWhereToWhere oops,错过了一个'='。查看我的更新回答 –
非常感谢参考。 – FromWhereToWhere