yah -- and since each is almost the same thing as for, i.e., for is
powered by each, you would want to do something like

[1,3,2].sort.each

which should give you 1, then 2, then 3.

On 5/31/06, Simen Edvardsen <toalett / gmail.com> wrote:
> Array#each iterates over an array from index 0 to #length - 1. So,
> with the array
>
>   [1, 3, 2]
>
> Array#each would yield 1, then 3, then 2. Have a look at Array#sort:
>
>   [1, 3, 2].sort { |a, b| a <=> b } # => [1, 2, 3]
>
> On 5/31/06, Matthew Smillie <M.B.Smillie / sms.ed.ac.uk> wrote:
> > On May 31, 2006, at 20:35, Wes Gamble wrote:
> >
> > > If I do
> > >
> > > Array.each do | arr_element |
> > > ...
> > > done
> > >
> > > am I guaranteed to get the array elements in order from lowest to
> > > highest?
> > >
> > > Or should I use a for loop to get the array elements?
> >
> > I don't know if it's guaranteed (in the sense that it will never
> > change), but that is what it seems to do:
> >
> > /*
> >   *  call-seq:
> >   *     array.each {|item| block }   ->   array
> >   *
> >   *  Calls <i>block</i> once for each element in <i>self</i>, passing
> > that
> >   *  element as a parameter.
> >   *
> >   *     a = [ "a", "b", "c" ]
> >   *     a.each {|x| print x, " -- " }
> >   *
> >   *  produces:
> >   *
> >   *     a -- b -- c --
> >   */
> >
> > VALUE
> > rb_ary_each(ary)
> >      VALUE ary;
> > {
> >      long i;
> >
> >      for (i=0; i<RARRAY(ary)->len; i++) {
> >          rb_yield(RARRAY(ary)->ptr[i]);
> >      }
> >      return ary;
> > }
> >
> >
> >
> >
>
>
> --
> - Simen
>
>


-- 
Giles Bowkett
http://www.gilesgoatboy.org