2013-09-27 32 views
2

我是新来Clojure,并找不到相当于整数?在来自Chez方案8.4,主要用于测试案例如下:在Clojure中实现整数?在计划

(?整数39.0) => #T

我想出到目前为止的功能是:

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

当x是任意数字类型还是有更好的解决方案时它工作吗?

谢谢。

回答

2

嗯,严格来说39.0不是整数文字,因为它在末尾有.0部分。一个简单的实现过程将是:

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

注意,== operator

返回非零如果NUMS都具有同等价值(类型无关),否则为false

+0

我用Clojure 1.5.1测试了这个版本,下面返回false:(actual-integer?3.0) – FromWhereToWhere

+0

@FromWhereToWhere oops,错过了一个'='。查看我的更新回答 –

+0

非常感谢参考。 – FromWhereToWhere