2012-10-25 5 views
6

プログラミング言語のクロージャーでモジュラス構文を書くにはどうすればいいですか?ClojureのMod構文

たとえば、「money%= money_value」という記号です。

+0

なぜJavaScriptタグですか? –

+0

これをクロージャーに変換します。 "money%= money_value" – user1585646

答えて

10

Clojureには、modremの2つの機能があります。正の数は同じですが、負の数は違っています。ここではドキュメントからの例です:

(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が良い場所だと思います。

+0

クロージャではどうですか... var change = function(amount){ var QUARTER_VALUE = 25、DIME_VALUE = 10、NICKEL_VALUE = 5; var quarters = Math.floor(金額/ QUARTER_VALUE); amount%= QUARTER_VALUE; var dimes = Math.floor(金額/ DIME_VALUE); – user1585646

+0

@ user1585646それはクロージャですか? – Pointy

+0

私は知っているが、私はそれをclojureに変換したい。 – user1585646