From: Sam Gentle Date: 2005-11-26T08:49:46+09:00 Subject: Fun with ranges! So I was messing around today trying to find out whether there was a viable way to cram unbounded lists into the Range implementation when I stumbled on this... irb(main):001:0> inf = 1.0/0.0 => Infinity irb(main):002:0> 1..inf => 1..Infinity Hoorah! But not just that. irb(main):003:0> 'a'..inf => "a"..Infinity Hold on a second, I said to myself, that doesn't make any sense... inf is a Float and "a" is a string! That's when I discovered ruby's dastardly secret: irb(main):004:0> 'a' <=> 3 => false irb(main):005:0> 3 <=> 'a' => nil And hence: irb(main):006:0> 'a'..3 => "a"..3 irb(main):007:0> 3..'a' ArgumentError: bad value for range from (irb):7 Zounds, Sam