如果您有一个枚举器和一些可调用的(proc/lambda/方法),有时组合它们来创建一个新的枚举器是很方便的,如下所示
class Enumerator
def compose func
Enumerator.new do |yielder|
each { |x| yielder << func[x] }
end
end
end
# make an enumerator that yields 0, 2, 4, 6...
(0..10).each.compose(proc { |x| x * 2 })
没有内置的方法可以做到这一点吗?或者没有更简单的语法?我一直在搜索文档,因为我们有Enumerator::+和Proc::<<个很接近但不太正确的文档.