4 ms·
Because always returning a positive result from the remainder is incredibly unnatural. You can get this behavior through Python's definition trivially using `a
by orlp 4y ago
Because always returning a positive result from the remainder is incredibly unnatural. You can get this behavior through Python's definition trivially using `a % abs(b)`, making rem_euclid less flexible as well.
The reason it's incredibly unnatural is not obvious when looking at the remainder in isolation. But the remainder is always one half of a pair: remainder and quotient. The quotient associated with rem_euclid is batshit insane.
The quotient associated with Python's modulo definition is simply floor(a/b).
Note that I'm wording it very strongly when I say it is wrong. It follows its spec faithfully and isn't 'bugged', its spec is just poorly and unnaturally chosen.