Синтаксис Mod в Clojure

Как написать синтаксис модуля в языке программирования clojure?

например, символы money %= money_value.

1 ответов


в 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 - это хорошее место для начала.