> Does Haskell specify how div and mod should behave when > given one or both arguments negative? > > Eg, in hugs we get: > > div 1 3 = 0 > div (-1) 3 = -1 > div 1 (-3) = -1 > div (-1) (-3) = 0 > > and so on.
We usually describe div as the version of division that "truncates towards negative infinity". What this actually means is that when there are two solutions to a `divMod` b = (d,m) such that d*b + m == a and abs m < b div picks the one where d is the closest to minus infinity, and quot picks the one where d is closer to zero. eg. (-1) `divMod` 3 = (-1, 2) or (0, -1) divMod gives you (-1,2), whereas quotRem gives you (0,-1). Hope this helps. Cheers, SImon _______________________________________________ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell