[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Shortest Ruby crash #49

Limo Driver

8/19/2008 7:40:00 PM

My contribution to the contest:

5**6**7

This baby throws "Errno::EBADF: Bad file descriptor", which I think
deserves a medal for being the least intuitive error message of 2008!

And now, for the real question...

Why is this being evaluated as 5**(6**7), when for instance 9/9/9 is
being evaluated normally (9/9)/9=0, instead of 9/(9/9)=9?

Lata!
14 Answers

Rob Biedenharn

8/19/2008 7:41:00 PM

0


On Aug 19, 2008, at 3:36 PM, Limo Driver wrote:

> My contribution to the contest:
>
> 5**6**7
>
> This baby throws "Errno::EBADF: Bad file descriptor", which I think
> deserves a medal for being the least intuitive error message of 2008!
>
> And now, for the real question...
>
> Why is this being evaluated as 5**(6**7), when for instance 9/9/9 is
> being evaluated normally (9/9)/9=0, instead of 9/(9/9)=9?
>
> Lata!


Mine is fine with it:
irb> 5**6**7
(irb):17: warning: in a**b, b may be too big
=> Infinity

What ruby do you have that crashes?

-Rob

Rob Biedenharn http://agileconsult...
Rob@AgileConsultingLLC.com



Dave Thomas

8/19/2008 7:44:00 PM

0


On Aug 19, 2008, at 2:36 PM, Limo Driver wrote:

> My contribution to the contest:
>
> 5**6**7

On 1.9, I get a number of 195,667 digits that starts 736 and ends 635.

Dave

Joost Diepenmaat

8/19/2008 7:46:00 PM

0

Limo Driver <melezov@gmail.com> writes:

> My contribution to the contest:
>
> 5**6**7
>
> This baby throws "Errno::EBADF: Bad file descriptor", which I think
> deserves a medal for being the least intuitive error message of 2008!

Works fine for me:

$ irb
irb(main):001:0> 5**6**7
=> 73643396061195573182045442760389697209119043099561473825102644208480
80271451222449204242010655986286553096951684440491235491489097071221600
73189280314561194164500176158310362022388644790243471934093460794441233
52773742517692136546608518658769275630499890833988104996453386858963527
.....
and so on

this on my locally compiled irb 0.9.5(05/04/13) on debian

> And now, for the real question...
>
> Why is this being evaluated as 5**(6**7), when for instance 9/9/9 is
> being evaluated normally (9/9)/9=0, instead of 9/(9/9)=9?

What makes you think either order is the "normal" one?

--
Joost Diepenmaat | blog: http://joost.... | work: http://...

Limo Driver

8/19/2008 7:47:00 PM

0

I've installed ruby exactly 8 minutes ago.
Managed to crash it with my fifth 'Hello World' attempt.

ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-mswin32]

It's not really about the crash, it's about the interesting operation
precedence.

Limo Driver

8/19/2008 7:48:00 PM

0

It seems your kung-fu is stronger than mine. :P

Fine than, try 9**9**9. Ouch.

Joshua Ballanco

8/19/2008 7:50:00 PM

0

Limo Driver wrote:
> Why is this being evaluated as 5**(6**7), when for instance 9/9/9 is
> being evaluated normally (9/9)/9=0, instead of 9/(9/9)=9?
Exponentiation has reverse precedence as compared to division,
multiplication, etc.
--
Posted via http://www.ruby-....

Limo Driver

8/19/2008 8:07:00 PM

0

Well, I kindof gathered that so far :/

Now I'm just trying to poke at the "Principle of Least Astonishment".

Martin DeMello

8/19/2008 8:16:00 PM

0

On Tue, Aug 19, 2008 at 12:36 PM, Limo Driver <melezov@gmail.com> wrote:>
> Why is this being evaluated as 5**(6**7), when for instance 9/9/9 is
> being evaluated normally (9/9)/9=0, instead of 9/(9/9)=9?

Ruby follows the actual mathematical usage, where a^b^c (imagine it
written in tower form) is a^(b^c). I guess this is because (a^b)^c =
a^(bc), so a^(b^c) was the case that needed the compact notation

martin

fburton

8/19/2008 9:24:00 PM

0

In article <636f74c2-f7d1-4204-929b-db7200bb2d9c@m3g2000hsc.googlegroups.com>,
Limo Driver <melezov@gmail.com> wrote:
>Well, I kindof gathered that so far :/
>
>Now I'm just trying to poke at the "Principle of Least Astonishment".

At least it is only mild astonishment in this case. ;-)

Francis

Tim Hunter

8/19/2008 11:12:00 PM

0

Limo Driver wrote:
> I've installed ruby exactly 8 minutes ago.
> Managed to crash it with my fifth 'Hello World' attempt.
>
> ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-mswin32]
>
> It's not really about the crash, it's about the interesting operation
> precedence.

I tried with the identical version of Ruby on WinXP and I get the "b may
be too large" message. No crash.
--
Posted via http://www.ruby-....