On 02.07.2009 20:33, Bil Kleb wrote:
> Robert Klemme wrote:
>> irb(main):002:0> i = -1
>> irb(main):003:0> a.delete_if {|x| i += 1; x < i}
> 
> Ah, if it weren't for the two lines, I think I'd pick
> this one.

Even with two lines I personally find it more elegant than some of the 
solutions you posted.  I can even give you reasons:

- it is straightforward and thus easy to understand
- little code, despite the two lines
- it does not create any temporary arrays of indexes or such which is 
the reason for:
- it is probably pretty efficient
- oh, and it should work on all versions of Ruby

:-)

Kind regards

	robert

-- 
remember.guy do |as, often| as.you_can - without end
http://blog.rubybestpractices.com/