> LçÉettçËäº "Robert Klemme" <bob.news / gmx.net>
> Aihe: Re: iteration the ruby way
> 
> 
> "E S" <eero.saynatkari / kolumbus.fi> schrieb im Newsbeitrag 
> news:20050206143902.PIMQ15813.fep31-app.kolumbus.fi / mta.imail.kolumbus.fi...
> >> LçÉettçËäº Kaspar Schiess <eule / space.ch>
> >> Aihe: Re: iteration the ruby way
> >>(In response to news:1107566961.943586.81760 / g14g2000cwa.googlegroups.com
> > by William James)
> >>> Shouldn't that be
> >>>
> >>> ary[0...-1].each {|e| do_something(e) }
> >>> do_something_else(ary.last)
> >>>
> >>> or
> >>>
> >>> ary[0..-2].each {|e| do_something(e) }
> >>> do_something_else(ary.last)
> >>>
> >>> ?
> >>
> >>I would prefer this solution for its clarity of expression.
> >
> > Me too :) I just think the #inject won on the neat-o factor,
> > particularly since it seemed adequate for the OP.
> 
> Partly yes and partly no: apart from the cute factor, there is a real 
> advantage of the inject solutions show: they work for *all* Enumerables 
> while the array indexing works only for arrays.  So #inject is more general. 
> Also, Array#[] creates a new array instance along the way which is a bit 
> inefficient.  But I do agree that the indexing might be more readable.

I think assuming an Array is valid in the described scenario (which
is the last element in a Hash, after all?) #inject certainly works
for the OP's scenario, but if the goal is to apply a different method
on the last element or even just to detect the last element, it is not
as intuitive as indexing or an explicit #last. In addition, #each and
#map provide different semantics for further clarity.

> Kind regards
> 
>     robert 

E
>