clojure - Clojure 中的 Mod 语法

标签 clojure modulus

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

例如符号 Money %= Money_value。

最佳答案

Clojure 中有两个函数您可能想尝试:modrem 。它们对于正数的作用相同,但对于负数的作用不同。这是文档中的示例:

(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上查找您不认识的任何功能。 。如果您只是不理解这种风格,那么您可能需要更多使用 higher-order functions 进行编程的经验。 。我认为4Clojure是一个很好的起点。

关于clojure - Clojure 中的 Mod 语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13060755/

相关文章:

c# - c# RSACryptoServiceProvider 中的指数和模数是什么类型的数据?

lua - 替代 Lua 中的模数

for-loop - :while and :when in clojure? 和有什么区别

clojure - Sublime Text 和 Clojure : Don't pair single quotes

Clojure — 部分在 `->` 宏中

c - C语言中的模数

php - 从模数中获取特定行(php)

clojure - 在 Clojure 中绘制两个列表

Clojure无限循环

algorithm - 如何检查大十进制数是否可以除以 2^x 或 5^x