> [...] > > A lot of Ruby's clarity comes not from being able to write things > > clearly in the "raw" language, but from being able to easily > > customize the language for your needs. > > Of course, and that is what I am asking in the whole thread! Is there > a nicer way for this loop... Let's see. I have this each_with_next > now, but still I am completely unstatisfied with my loop. But I am now > convinced that I have the optimal solution, even if it the way it > looks now. And btw., I need a look-ahead for this specific purpose. > The each_with_previous was a very nice hint, thanks, even if I wasn't > able to use it. I'd probably have to create each_with_prev_and_next. Hmm, I still don't know exactly what you realy want/need. If you just want to replace two instances of :b with double_b, have a look at this: ----------------------------------------------------------------- require 'enumerator' a=[:a, :b, :b, :c, :b, :d, :e] a[a.to_enum(:each_cons, 2).to_a.index([:b, :b]), 2] = 'double_b' puts a ----------------------------------------------------------------- (yes, of course this is completely without error checking and doesn't work for more than one occurrence of :b, :b) As I said, I'm not realy sure that's what you are looking for... cheers Simon