In (say) Python, the modulus operator (%) is actually a remainder
function too; Python arranges the quotient of integer division so that
the remainder equals the modulo.

In Ruby, % is a true modulo operator, and a.remainder(b) is used to
get the remainder.

Ruby                   Python
a     b  |   a/b   a%b  a.remainder(b) |    a/b      a%b
============|=============================|=================
13     4  |    3     1       1          |     3        1
13    -4  |   -3    -3       1          |    -4       -3
-13     4  |   -3     3      -1          |    -4        3
-13    -4  |    3    -1      -1          |     3       -1

Why do we care, you ask?

Well, both Ruby and Python (and Haskell and ...) have divmod, which
returns a quotient and a <something>.

In (say) Python, if

(q, r) = divmod(x, y)

then

x = q*y + r

In Ruby, however, divmod returns the quotient and modulo:

for x in [13, -13]
for y in [4, -4]
q, r = x.divmod(y)
puts q*y + r
end
end

=>  13, 9, -9, -13

This strikes me as dangerous, as I suspect most people would expect
divmod to return a remainder, not a modulus.

Anyone have any opinions?

Dave