6. イテレータ … ブロック付きメソッド 多くの伝統的な言語は,配列の各要素に対する処理の繰り返しなど, 定型的なループを (for 文 や DO 文など) 特定の構文でサポートしてきた。 さらにいくつかの言語はループの定型的な部分を抽象化して自由にプログラミング可能にすることに挑戦してきた。 Ruby はそのような試みのなかでも,広い意味で Alogol 系に属する 1970 年代の CLU に範をとった イテレータ (iterator) をサポートしている。 ここで Ruby の 称賛すべき独創性 は,CLU のイテレータ呼出し構文である for 文の本体を,同じく 1970 年代の成果である Smalltalk のブロックと統合することによって,内部動作としては CLU と同じながら構文としての汎用性を高めた点である。 第2章 で示した例を再び見てみよう。 irb(main):00