[#9382] the sign of a number is omitted when squaring it. -2**2 vs (-2)**2 — <noreply@...>

Bugs item #6468, was opened at 2006-11-03 17:25

9 messages 2006/11/03

[#9385] merge YARV into Ruby — SASADA Koichi <ko1@...>

Hi,

42 messages 2006/11/04
[#9405] Re: merge YARV into Ruby — "Kirill Shutemov" <k.shutemov@...> 2006/11/06

On 11/4/06, SASADA Koichi <ko1@atdot.net> wrote:

[#9406] Re: merge YARV into Ruby — Sylvain Joyeux <sylvain.joyeux@...4x.org> 2006/11/06

On Monday 06 November 2006 16:01, Kirill Shutemov wrote:

[#9417] Re: merge YARV into Ruby — Sean Russell <ser@...> 2006/11/06

On Monday 06 November 2006 10:15, Sylvain Joyeux wrote:

[#9428] Re: merge YARV into Ruby — "Kirill Shutemov" <k.shutemov@...> 2006/11/06

On 11/6/06, Sean Russell <ser@germane-software.com> wrote:

[#9402] fast mutexes for 1.8? — MenTaLguY <mental@...>

Many people have been using Thread.critical for locking because Ruby

24 messages 2006/11/06

[#9450] Bikeshed: No more Symbol < String? — Kornelius Kalnbach <murphy@...>

Hi ruby-core!

21 messages 2006/11/07
[#9452] Re: Bikeshed: No more Symbol < String? — Yukihiro Matsumoto <matz@...> 2006/11/07

Hi,

[#9493] Future Plans for Ruby 1.8 Series — URABE Shyouhei <shyouhei@...>

This week Japanese rubyists were talking about the future of ruby_1_8

13 messages 2006/11/09

[#9515] External entropy pool for random number generator — "Kirill Shutemov" <k.shutemov@...>

In the attachment patch which allow to use external entropy pool for

13 messages 2006/11/11
[#9522] Re: External entropy pool for random number generator — "Nobuyoshi Nakada" <nobu@...> 2006/11/13

Hi,

[#9554] Ruby 1.[89].\d+ and beyond. — Hugh Sasse <hgs@...>

I've been thinking about how version numbers are restricting what we can do.

30 messages 2006/11/16
[#9561] Re: Ruby 1.[89].\d+ and beyond. — Eric Hodel <drbrain@...7.net> 2006/11/16

[#9563] Re: Ruby 1.[89].\d+ and beyond. — Hugh Sasse <hgs@...> 2006/11/16

On Fri, 17 Nov 2006, Eric Hodel wrote:

[#9564] Re: Ruby 1.[89].\d+ and beyond. — Eric Hodel <drbrain@...7.net> 2006/11/16

On Nov 16, 2006, at 12:02 PM, Hugh Sasse wrote:

[#9571] Re: Ruby 1.[89].\d+ and beyond. — "Robert Dober" <robert.dober@...> 2006/11/19

On 11/16/06, Eric Hodel <drbrain@segment7.net> wrote:

[#9604] #ancestors never includes the singleton class (inconsistent) — <noreply@...>

Bugs item #6820, was opened at 2006-11-22 08:49

12 messages 2006/11/22
[#9618] Re: [ ruby-Bugs-6820 ] #ancestors never includes the singleton class (inconsistent) — Yukihiro Matsumoto <matz@...> 2006/11/25

Hi,

[#9629] Re: [ ruby-Bugs-6820 ] #ancestors never includes the singleton class (inconsistent) — Sylvain Joyeux <sylvain.joyeux@...4x.org> 2006/11/27

> It is supposed to. Singleton classes (or eigenclasses, if you want to

Re: [ ruby-Bugs-6468 ] the sign of a number is omitted when squaring it. -2**2 vs (-2)**2

From: Joel VanderWerf <vjoel@...>
Date: 2006-11-04 19:23:30 UTC
List: ruby-core #9394
Jacob Fugal wrote:
> On 11/3/06, noreply@rubyforge.org <noreply@rubyforge.org> wrote:
>> Due to the way ruby interprets formula's, squaring a negative number
>> isn't possible unless you use brackets. This caught me unaware, and
>> might be counterintuitive for more people.
>>
>> irb(main):018:0> -2**2
>> => -4
>> irb(main):019:0> (-2)**2
>> => 4
> 
> The "problem" lies in the confluence of precedence with the syntax of
> literals. It should be obvious that exponentiation (**) binds with a
> higher precedence than unary negation /as an operation/, because
> exponentiation has precedence of multiplication (and unary negation is
> essentially multiplication by -1). The confusion is because there's a
> misconception the the "-" in "-2" is part of the literal when it is
> not -- it is an operation applied to the object derived from the
> literal "2".

Any yet

irb(main):002:0> -2.abs
=> 2

So there are cases where the operation of "concatenating characters to 
form a literal" has higher priority than an operation on objects.

It's not simply a matter of `-' having priority over `.', as can be seen 
from this example:

irb(main):006:0> x=2
=> 2
irb(main):007:0> -x.abs
=> -2

So "dot" does have priority over "unary minus", but not over literal 
formation.

Why shouldn't literals always take precedence? Does it beak too many 
habits from ancestor languages (perl, as pointed out)? Is it too hard to 
parse?

-- 
       vjoel : Joel VanderWerf : path berkeley edu : 510 665 3407

In This Thread