如何在编程语言 clojure 中编写模数语法?
例如符号money %= money_value。
Clojure 中有两个函数您可能想尝试:mod
和rem
. 它们对正数的工作方式相同,但对负数的工作方式不同。这是文档中的一个示例:
(mod -10 3) ; => 2
(rem -10 3) ; => -1
更新:
如果您真的想将您的代码转换为 Clojure,您需要意识到惯用的 Clojure 解决方案可能与您的 JavaScript 解决方案完全不同。这是一个很好的解决方案,我认为它大致可以满足您的需求:
(defn change [amount]
(zipmap [:quarters :dimes :nickels :pennies]
(reduce (fn [acc x]
(let [amt (peek acc)]
(conj (pop acc)
(quot amt x)
(rem amt x))))
[amount] [25 10 5])))
(change 142)
; => {:pennies 2, :nickels 1, :dimes 1, :quarters 5}
您可以在ClojureDocs上查找您不认识的任何功能。如果您只是不了解样式,那么您可能需要更多的高阶函数编程经验。我认为4Clojure是一个很好的起点。