7

プログラミング言語 clojure でモジュラス構文を記述するにはどうすればよいですか?

たとえば、記号 money %= money_value です。

4

1 に答える 1

11

Clojure には、試してみたい関数が 2 つあります: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で調べることができます。スタイルを理解していないだけなら、おそらく高階関数を使ったプログラミングの経験が必要でしょう。4Clojureは始めるのに適した場所だと思います。

于 2012-10-25T02:37:37.183 に答える