Clojure-除法布尔

时间:2018-12-14 15:26:26

标签: clojure

此代码应在下面输出,但是,我是Clojure的新手,不了解其工作原理,需要帮助。

(defn divide? [a b]
(zero? (mod a b)))

///output///
(divides? 2 10)
 => true
(divides? 4 10)
=> false
 /// output///

但是实际输出是:

 ///output///
 (divides? 2 10)
 => false
(divides? 4 10)
 => false
  /// output///

有什么解决办法吗?

1 个答案:

答案 0 :(得分:2)

您只需要将参数切换为mod即可获得正确的输出:

(defn divisible-by? [div num]
  (zero? (mod num div)))

(divisible-by? 4 10)  ;=> false
(divisible-by? 2 10)  ;=> true
(divisible-by? -2 10) ;=> true

为了与clojure.core的modremquot等保持一致,我会考虑将参数交换给您的函数,以便首先使用numdiv秒。