2012-10-25 37 views
6

Làm cách nào để viết cú pháp mô đun trong ngôn ngữ lập trình clojure?Cú pháp Mod trong Clojure

Ví dụ: ký hiệu tiền% = money_value.

+0

Tại sao thẻ JavaScript? –

+0

chuyển đổi điều này thành clojure "tiền% = money_value" – user1585646

Trả lời

10

Có hai chức năng trong Clojure bạn có thể muốn thử: modrem. Chúng hoạt động tương tự cho các số dương, nhưng khác với số âm. Dưới đây là một ví dụ từ các tài liệu:

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

Cập nhật:

Nếu bạn thực sự muốn chuyển đổi mã của bạn để Clojure, bạn cần phải nhận ra rằng một giải pháp Clojure thành ngữ có lẽ sẽ không tìm kiếm bất cứ điều gì giống như của bạn Giải pháp JavaScript. Dưới đây là một giải pháp tốt đẹp mà tôi nghĩ rằng không khoảng những gì bạn muốn:

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

Bạn có thể tra cứu bất kỳ chức năng bạn không nhận ra trên ClojureDocs. Nếu bạn không hiểu phong cách, thì có thể bạn cần một số chương trình có kinh nghiệm hơn với higher-order functions. Tôi nghĩ rằng 4Clojure là một nơi tốt để bắt đầu.

+0

Làm thế nào về điều này trong clojure ... var change = function (số tiền) { var QUARTER_VALUE = 25, DIME_VALUE = 10, NICKEL_VALUE = 5; var quarters = Math.floor (số tiền/QUARTER_VALUE); số tiền% = QUARTER_VALUE; var dimes = Math.floor (số tiền/DIME_VALUE); – user1585646

+0

@ user1585646 không phải là clojure? – Pointy

+0

Tôi biết nhưng tôi muốn chuyển đổi nó thành clojure. – user1585646