ふぁぶりーずさん、こんにちは。
はい、Ruby とはEnumeratorを用いるなら、遅延評価的な処理を行えます。
RubyではEnumeratorを用いることで、ある程度「遅延評価的」な処理を実現できます。
通常の配列操作は全要素を一度に展開しますが、Enumeratorは必要なタイミングで要素を一つずつ生成・取り出す仕組みを持っています。
例えばEnumerator.newでブロックを定義すると、nextメソッドを呼ぶたびに次の値が計算されるため、無限列のようなデータも扱えます。
またlazyメソッドを使えば、mapやselectなどの処理を遅延的に適用でき、最終的に必要な部分だけを評価することが可能です。
これにより大規模データや無限シーケンスを効率的に扱えるようになります。
ただしHaskellのような純粋な遅延評価言語とは異なり、Rubyでは明示的にEnumeratorやlazyを利用する必要がある点に注意が必要です。