Clojure中的Mod语法
如何在编程语言clojure中编写模数语法Clojure中的Mod语法,clojure,modulus,Clojure,Modulus,如何在编程语言clojure中编写模数语法 例如,符号money%=money\u value。Clojure中有两个函数您可能需要尝试:and。它们对正数的作用相同,但对负数的作用不同。以下是文档中的一个示例: (mod -10 3) ; => 2 (rem -10 3) ; => -1 更新: 如果您真的想将代码转换为Clojure,您需要意识到一个惯用的Clojure解决方案可能与您的JavaScript解决方案完全不同。下面是一个很好的解决方案,我认为它大致满足了您的需求:
例如,符号money%=money\u value。Clojure中有两个函数您可能需要尝试:and。它们对正数的作用相同,但对负数的作用不同。以下是文档中的一个示例:
(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}
您可以在上查找任何您不认识的函数。如果您只是不理解这种风格,那么您可能需要更多的编程经验。我认为这是一个很好的开始。将此转换为clojure“money%=money\u value”在clojure中如何。。。var change=函数(金额){var QUARTER\u值=25,DIME\u值=10,NICKEL\u值=5;var QUARTER=Math.floor(金额/季度值);amount%=QUARTER\u值;var dimes=Math.floor(金额/维度值);@user1585646那不是clojure?我知道,但我想把它转换成clojure。这是另一个问题。而且,我认为你缺少代码。就目前而言,我不确定这有什么意义。@user1585646-好了,现在你有了clojure版本!(我更新了我的答案。)