This page is part of the web mail archives of SRFI 77 from before July 7th, 2015. The new archives for SRFI 77 contain all messages, not just those from before July 7th, 2015.
For what it's worth, here is the behavior that I as a programmer expect from Div and Mod. I expect mod always to return a number between zero inclusive and the modulus exclusive. IOW, for all real X: (mod X 3) -> always a number between 0 and 3 (mod X -3) -> always a number between 0 and -3. I expect div to return whatever has to be returned to assure that for all real x and real N, (+ (mod x N) (* (div x N) N)) -> x It happens that in all cases where the signs match, the expected sign of the result of div is positive or zero. In all cases where the signs don't match, the expected sign of the result of div is negative or zero. In many systems they behave otherwise. When that happens, it frequently causes bugs which I eventually trace down to the application of div or modulus returning a negatve (or positive!) number unexpectedly, and after some experimentation kluge together a workaround or correction for. Bear