Vom Haskell Report:Wann ist der Unterschied zwischen quotRem und divMod nützlich?
The quot, rem, div und mod Klasse Methoden diese Gesetze erfüllen, wenn y ungleich Null:
(x `quot` y)*y + (x `rem` y) == x (x `div` y)*y + (x `mod` y) == x
quot
ganzzahlige Division abgeschnitten Richtung Null, während das Ergebnis vondiv
in Richtung negativer Unendlichkeit abgeschnitten ist.
Zum Beispiel:
Prelude> (-12) `quot` 5
-2
Prelude> (-12) `div` 5
-3
Was sind einige Beispiele dafür, wo der Unterschied zwischen dem, wie das Ergebnis abgeschnitten Angelegenheiten?
"so dass der Rest immer nichtnegativ ist" Technisch folgt das Vorzeichen von 'mod' dem Vorzeichen des zweiten Operanden. – newacct
Huh, du hast Recht. Ich verstehe diese Design-Entscheidung nicht ... – ShreevatsaR
es ist die Eigenschaft zu erhalten, die '(q, r) = divMod x y 'wenn und nur wenn' x = q * y + r'. Führen Sie ein Beispiel, es ist klug, wie es funktioniert. – luqui