如何在 Clojure 中返回字符串

Dus*_*haw 1 functional-programming return clojure

我对 Clojure 和函数式编程非常陌生。我正在研究 Codewars“偶数或奇数”练习题。我想要的结果是根据传入的参数返回“偶数”或“奇数”。到目前为止,我的代码只是打印单词“偶数”或“奇数”。

(ns kata)

(defn even-or-odd [number]
  ; ...
   (if (= (Math/abs (rem number 2)) 1)
    (println "Odd")
    (println "Even"))
)
Run Code Online (Sandbox Code Playgroud)

我的测试失败并显示以下消息:expected: (= (even-or-odd 2) "Even") actual: (not (= nil "Even"))

如何返回单词“偶数”或“奇数”而不是打印它?

Mar*_*ůda 9

您甚至不必使用str- 只需将字符串写为要计算的最后一个表达式即可。

请注意,Clojure 具有函数even?odd?

(defn even-or-odd [number]
  (if (odd? number)
   "Odd"
   "Even"))
Run Code Online (Sandbox Code Playgroud)