[#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:03139] Re: Is divmod dangerous?

From: Dave Thomas <Dave@...>
Date: 2000-06-07 01:51:04 UTC
List: ruby-talk #3139
matz@netlab.co.jp (Yukihiro Matsumoto) writes:

> |Okay, divmod should be change.  I vote 13/-4 -> -4 too. 
> |Generally, 
> |
> |  num / den := floor(num "div" den)  # "div" in done in the real
> |  num % den := num - den*(num/den)
> 
> So, you mean making modulo and reminder be same?  Python way?

How about a compromise?

We have two basic methods,  Integer#div (the current behavior) and
Integer#divz, which truncates towards zero. Associated with these are
corresponding modulo routines, #mod (the current behavior) and #modz
(which is equivalent to remainder).

Then, we have two 'personalities', which are actually just modules.

   include ZeroTrunc

        aliases Integer#/ to divz and Integer#% to #modz

   include SchemeTrunc

        does the opposite


Have ZeroTrunc be the default, but allow people to load SchemeTrunc
for the traditional behavior.


Library routines which can potentially run in either environment
should use the underlying .div and .divz routines.


Dave

In This Thread