2013-09-27 34 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