[#3109] Is divmod dangerous? — Dave Thomas <Dave@...>

14 messages 2000/06/06

[#3149] Retrieving the hostname and port in net/http — Roland Jesse <jesse@...>

Hi,

12 messages 2000/06/07

[#3222] Ruby coding standard? — Robert Feldt <feldt@...>

16 messages 2000/06/09

[#3277] Re: BUG or something? — Aleksi Niemel<aleksi.niemela@...>

> |I am new to Ruby and this brings up a question I have had

17 messages 2000/06/12
[#3281] Re: BUG or something? — Dave Thomas <Dave@...> 2000/06/12

Aleksi Niemel<aleksi.niemela@cinnober.com> writes:

[#3296] RE: about documentation — Aleksi Niemel<aleksi.niemela@...>

> I want to contribute to the ruby project in my spare time.

15 messages 2000/06/12

[#3407] Waffling between Python and Ruby — "Warren Postma" <embed@...>

I was looking at the Ruby editor/IDE for windows and was disappointed with

19 messages 2000/06/14

[#3410] Exercice: Translate into Ruby :-) — Jilani Khaldi <jilanik@...>

Hi All,

17 messages 2000/06/14

[#3415] Re: Waffling between Python and Ruby — Andrew Hunt <andy@...>

>Static typing..., hmm,...

11 messages 2000/06/14

[#3453] Re: Static Typing( Was: Waffling between Python and Ruby) — Andrew Hunt <andy@...>

32 messages 2000/06/16

[#3516] Deep copy? — Hugh Sasse Staff Elec Eng <hgs@...>

Given that I cannot overload =, how should I go about ensuring a deep

20 messages 2000/06/19

[#3694] Why it's quiet — hal9000@...

We are all busy learning the new language

26 messages 2000/06/29
[#3703] Re: Why it's quiet — "NAKAMURA, Hiroshi" <nahi@...> 2000/06/30

Hi,

[#3705] Re: Why it's quiet — matz@... (Yukihiro Matsumoto) 2000/06/30

Hi,

[ruby-talk:03145] Re: Is divmod dangerous?

From: "Richard P. Groenewegen" <rpg@...2all.net>
Date: 2000-06-07 09:51:34 UTC
List: ruby-talk #3145
On Tue, Jun 06, 2000 at 11:12:28PM -0500, Conrad Schneiker wrote:
> You could also cross-post a query on comp.lang.python about this, asking:
> (1) why it was done the way it was done, (2) what the less-obvious

I happen to have an opinion about this issue.  For a fixed modulus m
the test  a%m == b%m  should be true if a and b are the same modulo m.
In other words, we want a fixed set of representative modulo m (if m
is positive, we usually take 0,1,...,m-1) and let a%m be the unique
representative that differs a multiple of m with a.  So we would want
-13%4 to equal 3.  Note also that this doesn't break the periodicity:

Let m=4:

a  :  7   6   5   4   3   2   1   0  -1  -2  -3  -4  -5  -6
a%m:  3   2   1   0   3   2   1   0   3   2   1   0   3   2

I think there are both mathematical and computer scientific advantages
to this approach.  Now we definitely want a = (a/b)*b + a%b, so now we
are almost where python is.  For those that think it is unnatural to
have (-a)/b unequal to -(a/b) in some cases, the python choice does
give us:  (a+b)/b == a/b + 1.  There is something to be said for that.  

I have less of an opinion about taking something modulo a negative m,
but it seams appropriate to take negative representatives there (as
python does).  Moreover, we get the relation (-a)/b==a/(-b).  So I
vote for the python way and let .remainder be the same as %.

Richard (number theorist and to be Ruby enthusiast)
-- 
You don't suppose [Microsoft] could "embrace and extend" the law do
you?                             -- lbrlove on slashdot

In This Thread