Enumratorの素敵さ

ある文字コードをIndex付きで表示する

i = 0
'abc'.each_byte { |e|
  puts "#{i}: #{e}"
  i += 1
}

これが

require 'enumerator'
'abc'.enum_for(:each_byte).each_with_index { |e,i|
  puts "#{i}: #{e}"
}


このコードではファイル配下のファイル名を取ってきて、配列に変換しています。

require 'find'
a = []
Find.find('./'){|f| a << f}

これが

require 'enumerator'
require 'find'

a = Find.enum_for(:find, './').to_a

となってUnixのパイプっぽいの役割をしてくれます。
(via 指定したディレクトリ以下のファイルの一覧を取得 - 技術メモ帳)