2016-05-13 43 views

Trả lời

7

dụ Clojuredoc cho rem mô tả sự khác biệt:

;; rem and mod are commonly used to get the remainder. 
;; mod means Gaussian mod, so the result is always 
;; non-negative. Don't confuse it with ANSI C's % 
;; operator, which despite being pronounced 
;; 'mod' actually implements rem, i.e. -10 % 3 = -1. 

user=> (mod -10 3) 
2 

user=> (rem -10 3) 
-1 
9

mod trả về sự khác biệt của số đầu tiên, và lớn nhất nguyên (có thể là tiêu cực) bội số của số thứ hai đó là ít hơn so với số đầu tiên :
rem chỉ là phần còn lại.

Ví dụ: (rem -4 3) => -1 không có gì ngạc nhiên ở đây: -4 chia cho 3 là -1 với -1 "còn lại".
Nhưng weirdness xảy ra nếu chúng tôi sử dụng mod: (mod -4 3) => 2:

  • Số nguyên lớn nhất của nhiều 3 ít hơn -4 là -6.
  • -4 trừ -6 là 2.

Vì vậy, mặc dù họ thường đóng vai trò tương tự, mod không không trở lại thời gian còn lại, nó làm điều gì đó cụ thể hơn.

You might find these clojuredocs examples helpful.

Các vấn đề liên quan