Hi,

In message "[ruby-talk:00408] Re: New feature for Ruby?"
    on 99/07/01, Julian R Fondren <julian / cartotech.com> writes:

|> - Range::new(1, 9, -2) -- ERROR!
|Perhaps you should try the latest version of ruby, the absolute value of
|the third argument is used, and this works fine.

Range::new() takes tree arguments in the latest, but the third
argument is the boolean value to specify exclude last item, so that:

  Range::new(1,9,false) # 1<=n<=9; default
  Range::new(1,9,true)  # 1<=n<9;

|> The call "Range::new(1, 9)" or "Range::new(9, 1)" could also be
|> written as "1..9" and "9..1" (perhaps we could have a global function
|> "range" (like Python) which would instantiate Ranges via Range::new?).
|This is already true.
|``for x in 1..9; print "#{x}\n"; end'' works as expected

But not for reverse order; 

  for x in 9..1; print "#{x}\n"; end

will not work as many (well, at least Clemens) expect.

But I think Range is designed to be that way, i.e, no reverse order,
option to exclude last element.  I believe there can be something like
Interval class which is like Smalltalk's Interval.

                                                matz.