Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Clojure中的Mod语法_Clojure_Modulus - Fatal编程技术网

Clojure中的Mod语法

Clojure中的Mod语法,clojure,modulus,Clojure,Modulus,如何在编程语言clojure中编写模数语法 例如,符号money%=money\u value。Clojure中有两个函数您可能需要尝试:and。它们对正数的作用相同,但对负数的作用不同。以下是文档中的一个示例: (mod -10 3) ; => 2 (rem -10 3) ; => -1 更新: 如果您真的想将代码转换为Clojure,您需要意识到一个惯用的Clojure解决方案可能与您的JavaScript解决方案完全不同。下面是一个很好的解决方案,我认为它大致满足了您的需求:

如何在编程语言clojure中编写模数语法


例如,符号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版本!(我更新了我的答案。)