プログラミング言語 clojure でモジュラス構文を記述するにはどうすればよいですか?
たとえば、記号 money %= money_value です。
Clojure には、試してみたい関数が 2 つあります: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は始めるのに適した場所だと思います。