2012-10-25 19 views
6

Programlama dilinde clojure'da nasıl modül yazımı yazarım? Örneğin, para% = money_value sembollerini gösterir.Clojure'da Mod Sözdizimi

+0

Neden JavaScript etiketi? "Para% = MONEY_VALUE" Clojure içine –

+0

dönüştürme bu – user1585646

cevap

10

Clojure'da denemek isteyebileceğiniz iki işlev vardır: mod ve rem. Pozitif sayılar için aynı şekilde çalışırlar, ancak negatif sayılar için farklıdırlar. İşte dokümanlardan bir örnek:

(mod -10 3) ; => 2 
(rem -10 3) ; => -1 

Güncelleme: Gerçekten Clojure için kodunuzu dönüştürmek istiyorsanız

, bir deyimsel Clojure çözümü muhtemelen böyle bir şey görünmeyecek gerçekleştirmek gerekir senin JavaScript çözümü.

(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} 

Sen ClojureDocs üzerinde tanımıyoruz işlevlerin herhangi bakabilirsiniz: İşte ne istediğini kabaca yapar düşünmek güzel bir çözüm. Tarzınızı anlamıyorsanız, muhtemelen higher-order functions ile daha fazla deneyim programlamaya ihtiyacınız vardır. Bence 4Clojure başlamak için iyi bir yer.

+0

nasıl Clojure bu ... var değişim = function (miktar) { var QUARTER_VALUE = 25, DIME_VALUE = 10 hakkında, NICKEL_VALUE = 5; var quarters = Math.floor (miktar/QUARTER_VALUE); tutarında% = QUARTER_VALUE; var dimes = Math.floor (miktar/DIME_VALUE); – user1585646

+0

@ user1585646 bu clojure değil mi? – Pointy

+0

Biliyorum ama bunu clojure'a dönüştürmek istiyorum. – user1585646