dte*_*eoh 13 recursion clojure
我正在通过Clojure Koans工作,我正在接受递归换档.
我不明白如何解决is-even?
使用递归.练习部分将此功能定义为:
(defn is-even? [n]
(if (= n 0)
true
(__ (is-even? (dec n)))))
Run Code Online (Sandbox Code Playgroud)
如果我不想使用递归,那么我会将其定义为,(defn is-even? [n] (= (mod n 2) 0))
但这违背了练习的要点.
Ger*_*ert 15
像amalloy说的那样,用"不"填补空白.但假设你假设参数只能是0或正数,你不需要另一个基本情况:dec
确保你总是最终为0,奇数返回false如下:
(is-even? 0) ==> base case (= 0 0) ==> true.
(is-even? 1) ==> (not (is-even? (dec 1))
==> (not (is-even? 0))
==> (not true)
==> false
(is-even? 2) ==> (not (is-even? 1))
==> (not false)
==> true
Run Code Online (Sandbox Code Playgroud)
等等.