[#14464] who uses Python or Ruby, and for what? — ellard2@...01.fas.harvard.edu (-11,3-3562,3-3076)

A while ago I posted a request for people to share their experiences

12 messages 2001/05/01

[#14555] Ruby as a Mac OS/X scripting language — Dave Thomas <Dave@...>

10 messages 2001/05/02

[#14557] Arggg Bitten by the block var scope feature!!! — Wayne Scott <wscott@...>

13 messages 2001/05/02

[#14598] Re: Arggg Bitten by the block var scope feature!!! — "Conrad Schneiker" <schneik@...>

# On Thu, 3 May 2001, Wayne Scott wrote:

9 messages 2001/05/03

[#14636] Yet another "About private methods" question — Eric Jacoboni <jacoboni@...2.fr>

I'm still trying to figure out the semantics of private methods in Ruby.

39 messages 2001/05/04
[#14656] Re: Yet another "About private methods" question — Dave Thomas <Dave@...> 2001/05/04

Eric Jacoboni <jaco@teaser.fr> writes:

[#14666] Ruby and Web Applications — "Chris Montgomery" <monty@...> 2001/05/04

Greetings from a newbie,

[#14772] Re: Ruby and Web Applications — Jim Freeze <jim@...> 2001/05/07

On Sat, 5 May 2001, Chris Montgomery wrote:

[#14710] Why's Ruby so slow in this case? — Stefan Matthias Aust <sma@3plus4.de>

Sure, Ruby, being interpreted, is slower than a compiled language.

12 messages 2001/05/05

[#14881] Class/Module Information — "John Kaurin" <jkaurin@...>

It is possible to modify the following code to produce

18 messages 2001/05/09

[#15034] Re: calling .inspect on array/hash causes core dump — ts <decoux@...>

>>>>> "A" == Andreas Riedl <viisi@chello.at> writes:

15 messages 2001/05/12

[#15198] Re: Q: GUI framework with direct drawing ca pabilities? — Steve Tuckner <SAT@...>

Would it be a good idea to develop a pure Ruby GUI framework built on top of

13 messages 2001/05/15

[#15234] Pluggable sorting - How would you do it? — "Hal E. Fulton" <hal9000@...>

Hello all,

16 messages 2001/05/16

[#15549] ColdFusion for Ruby — "Michael Dinowitz" <mdinowit@...2000.com>

I don't currently use Ruby. To tell the truth, I have no real reason to. I'd

12 messages 2001/05/22

[#15569] I like ruby-chan ... — Rob Armstrong <rob@...>

Ruby is more human(e) than Python. We already have too many animals :-).

15 messages 2001/05/23

[#15601] How to avoid spelling mistakes of variable names — ndrochak@... (Nick Drochak)

Since Ruby does not require a variable to be declared, do people find

13 messages 2001/05/23

[#15734] java based interpreter and regexes — "Wayne Blair" <wayne.blair@...>

I have been thinking about the java based ruby interpreter project, and I

48 messages 2001/05/25

[#15804] is it possible to dynamically coerce objects types in Ruby? — mirian@... (Mirian Crzig Lennox)

Greetings to all. I am a newcomer to Ruby and I am exploring the

13 messages 2001/05/27
[#15807] Re: is it possible to dynamically coerce objects types in Ruby? — matz@... (Yukihiro Matsumoto) 2001/05/27

Hi,

[#15863] Experimental "in" operator for collections — Stefan Matthias Aust <sma@3plus4.de>

There's one thing where I prefer Python over Ruby. Testing whether an

13 messages 2001/05/28

[#15925] Re: Block arguments vs method arguments — ts <decoux@...>

>>>>> "M" == Mike <mike@lepton.fr> writes:

43 messages 2001/05/29
[#16070] Re: Block arguments vs method arguments — "Hal E. Fulton" <hal9000@...> 2001/05/31

----- Original Message -----

[#16081] Re: Block arguments vs method arguments — Sean Russell <ser@...> 2001/05/31

On Thu, May 31, 2001 at 11:53:17AM +0900, Hal E. Fulton wrote:

[#16088] Re: Block arguments vs method arguments — Dan Moniz <dnm@...> 2001/05/31

At 11:01 PM 5/31/2001 +0900, Sean Russell wrote:

[#15954] new keyword idea: tryreturn, tryturn or done — Juha Pohjalainen <voidjump@...>

Hello everyone!

12 messages 2001/05/29

[ruby-talk:14823] Re: Integer division oddness

From: raja@... (Raja S.)
Date: 2001-05-07 22:41:24 UTC
List: ruby-talk #14823
"Mike T. Miller" <mtm@csoft.net> writes:

>In partial answer to my own post, I just found this
>link: http://xenia.media.mit.edu/~bdenckla/thesis/texts/htthe/node13.html

>It still seems wrong to me.  Which is right? -1 or -2?
>I guess it boils down to whether or not you believe that the
>modulus can be negative.

As has been pointed out earlier by Ben, it depends.
If you talk to language designers they would say both are right.
If you talk to a mathematician she would say -2 is right.

To fully answer the question about '%' you have to look at the other side of
the coin at its sibling operation '/' .

No matter what language you use the following should -always- hold:

            x == y(x/y) + x%y

and hence x%y will always be x - y(x/y)

Language designers choose the behavior of '%' in conjunction with what they
want '/' to mean.  When the signs of x and y are the same there is no
ambiguity about x/y.  But what about when they differ?

 -10/3  == -3.3333333

Which way do you convert to an integer?

Mathematicians would take the 'floor' function --- floor(n) is the largest
integer < n.  floor(3.9) = 3 floor(-3.2) = -4.  While most earlier language
implementors would truncate.

Over the ages, mathematicians haven't worried too much about efficiency ;-).
As it turns out calculating the floor is a little bit more expensive than
just truncating the fractional part.

[Intuitively when you take the 'floor' you move left on the number line to
the first integer.  When truncation you move towards 0.]

Hence most programming languages have defined x/y as truncating.
Consequentially -10 % 9 becomes -1 in such languages.  In such languages '%'
should really be called the remainder operation (K&R still calls it
'modulus' while Java has made the right choice in calling it 'remainder').

As Matju points out, for just about all Math applications you really need
the true 'modulo' operation. Which a Math person would explicitly define
such that: 

            x == y*floor(x/y) + x%y   [/ being real division]

[I've got a 'true_mod' defined in my private C library defined in a manner
similar to Ruby's definition]

The above equation using 'floor' can be generalized to all numbers, not just
integers as in C/Java.  Scheme and  Common Lisp are two other languages that
have had it right for quite some time.

Regards,

Raja


In This Thread