此代码应在下面输出,但是,我是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///
有什么解决办法吗?
答案 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的mod
,rem
,quot
等保持一致,我会考虑将参数交换给您的函数,以便首先使用num
和div
秒。