Enumerable#find_indexとArray#indexってかぶってるよね

機能がもろかぶっとる。統一しようぜとruby-devに提案してみた。

a = %w[a b C D e]
a.index {|x| x =~ /^[A-Z]/ }      # => 2
a.find_index {|x| x =~ /^[A-Z]/ } # => 2
a.index {|x| x =~ /^z/ }          # => nil
a.find_index {|x| x =~ /^x/ }     # => nil
(2..5).to_a.index(&:odd?)         # => 1
(2..5).find_index(&:odd?)         # => 1
(2..5).to_a.index(4)              # => 2
(2..5).find_index(4)              # => 2

Enumerable#cycleは一旦Arrayに保存するとのことだから、多くのArrayのメソッドをEnumerableに移すことができるような。

追記

indexは他の用途に使われうるからfind_indexという名前も残すというのがRuby開発者の考えかたのようだ。sendと__send__みたいなものだな。納得。