ラムダの配列と値の配列(両方とも実行時に作成されます)が与えられた場合、
values.map{ |value| lambdas[0].(value) }
(明らかに)最初のラムダを各値に適用した結果を配列として返します。しかし、私がする必要があるのは、すべてのラムダを適用することです。
values.
map{ |value| lambdas[0].(value) }.
map{ |value| lambdas[1].(value) }.
...
map{ |value| lambdas[-1].(value) }
私は確かにそうするためのメソッドを書くことができます、例えば
def map_all(lambdas, values)
if lambdas.length == 0
values
else
map_all(lambdas.drop(1), values.map{ |value| lambdas.first.(value) })
end
end
しかし、これを行うためのよりエレガントなまたは慣用的な方法はありますか?