この例では、composeメソッドとhydrateメソッドの両方でlambdaが使用されています。ラムダはここで何をしていますか?この例のラムダの目的は何ですか?
def compose *lambdas
if lambdas.empty?
lambda { nil }
elsif lambdas.size == 1
lambdas.first
else
lambda do |n|
lambdas.first.call(compose(*lambdas[1..-1]).call(n))
end
end
end
def hydrate(modulus, printable_form)
i = 0
lambda do |n|
(i = (i + 1) % modulus) == 0 && printable_form || n
end
end
print(((1..100).map
&compose(
hydrate(15, 'Watermelon'),
hydrate(5, 'Melon'),
hydrate(3, 'Water'))).join(' '))
私の2番目の質問は、 - 単語composeの前にアンパサンドが必要なのは何ですか?
よく覚えている:-) – mikej