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

From: rrt@... (Reuben Thomas)
Date: 2000-06-06 09:21:01 UTC
List: ruby-talk #3116
On 06 Jun 2000 02:00:13 -0500, Dave Thomas <Dave@thomases.com> wrote:
>
>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

Another perspective on this is that of Forth, where we talk about doing
either floored division (where the quotient is rounded to minus infinity) or
symmetric division (where the quotient is rounded to zero). In floored
division the remainder = the modulus; in symmetric division it may not.
Either way, the invariant qb+r=a is preserved.

Yet another way to look at it is forcing either the quotient or the
remainder to have the same sign as the divisor.

So the suggestion that there are two division operations as well as two
remainders is correct.

ANSI Forth has both, because both are widely used (and one was mandated by
the Forth-79 standard, and the other by the Forth-83 standard). Most people
find symmetric division more intuitive, but floored division is
mathematically more symmetric...

-- 
http://sc3d.org/rrt/ | 

In This Thread