A menudo enchufo lambdas preconfiguradas en métodos enumerables como 'mapa', 'seleccionar', etc. pero el comportamiento de 'inyectar' parece ser diferente. p. conComprender el comportamiento de la inyección utilizada con una lambda en Ruby
mult4 = lambda {|item| item * 4 }
continuación
(5..10).map &mult4
me da
[20, 24, 28, 32, 36, 40]
Sin embargo, si hago una lambda de 2 parámetros para su uso con una inyección como tal,
multL = lambda {|product, n| product * n }
Quiero poder decir
(5..10).inject(2) &multL
desde 'inyectar' tiene una sola opcional parámetro para el valor inicial, pero eso me da ...
irb(main):027:0> (5..10).inject(2) &multL
LocalJumpError: no block given
from (irb):27:in `inject'
from (irb):27
Sin embargo, si yo meto la '& multL' en un segundo parámetro para inyectar, luego funciona.
irb(main):028:0> (5..10).inject(2, &multL)
=> 302400
Mi pregunta es "¿por qué funciona eso y no es el intento anterior?"