Entendiendo el comportamiento de la inyección utilizada con un lambda en Ruby

A menudo conecto las lambdas preconfiguradas en métodos enumerables como "mapa", "seleccionar", etc., pero el comportamiento de "inyectar" parece ser diferente. p.ej. con

<code>mult4 = lambda {|item| item * 4 }
</code>

entonces

<code>(5..10).map &mult4
</code>

me da

<code>[20, 24, 28, 32, 36, 40]
</code>

Sin embargo, si hago una lambda de 2 parámetros para usar con una inyección como esa,

<code>multL = lambda {|product, n| product * n }
</code>

Quiero poder decir

<code>(5..10).inject(2) &multL
</code>

ya que 'inyectar' tiene un opcionalsoltero parámetro para el valor inicial, pero eso me da ...

<code>irb(main):027:0> (5..10).inject(2) &multL
LocalJumpError: no block given
        from (irb):27:in `inject'
        from (irb):27
</code>

Sin embargo, si meto el '& multL' en unsegundo Parámetro para inyectar, entonces funciona.

<code>irb(main):028:0> (5..10).inject(2, &multL)
=> 302400
</code>

Mi pregunta es "¿por qué funciona eso y no el intento anterior?"

Respuestas a la pregunta(1)

Su respuesta a la pregunta