気持ちはパイプラインになれる。
class Enumerator def |(f) self.map(&f).to_enum end end [1, 2, 3].to_enum | ->(s) { s * 2 } | ->(s) { s + 10 } #=> #<Enumerator: [12, 14, 16]:each>
ポイントとしては、EnumeratorがEnumeratorを返すメソッドにしないとパイプラインを繋げない...
Proc#curry などと組み合わせて気持ちを関数にできるかもしれない。
追記
Enumerable#| でいいかともおもったが、すでに Array#| があるのでいろいろ不都合っぽい。別の記号ならいいかもしれない。