dblack@wobblini wrote: #> OK, i'll be shooting for the moon here. How about passing a parameter? Is it #> then possible to make #each or #map same behavior w #each_with_index or #> #map_with_index or whatever *_with_index so that the ff works, #> #> def each(with_index=true) do... end #> #> def map(with_index=true) do ... end #> #> and thus, we can do #> #> [1,2,3,4,5,6].map(true) {|x,i|[2,5].include?(i) ? x : x*2} # #I'd hope not to see that. I'm actually hoping that maybe someday all #the boolean flag methods (like instance_methods(true) etc.) will be #changed :-) They've always seemed to me to be the most cryptic thing #in all of Ruby. # Yes, you are correct. But there is some sort of give and take here or balance if i may say (i think i heard the word balance fr you, sir David).. How about [1,2,3,4,5,6].map(WITH_INDEX) {|x,i|[2,5].include?(i) ? x : x*2} or [1,2,3,4,5,6].map(with_index=>true) {|x,i|[2,5].include?(i) ? x : x*2} if we don't pass flags or attribs, wouldn't that make creating additional methods like each each_with_index map map_with_index collect collect_with_index ... ? it's with_index es all over.. Also, if we create a with_index method, wouldn't that be invoking another method just for the index, like each_with_index.map or map.with_index Wouldn't my algorithm slow down? Does not the chain begs for a single method -which brings us back to the original question...? kind regards -botp #David