Entendendo o comportamento de injetar usado com um lambda em Ruby

Eu costumo ligar lambdas pré-configurados em métodos enumeráveis ​​como 'map', 'select' etc. mas o comportamento de 'inject' parece ser diferente. por exemplo. com

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

então

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

me dá

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

No entanto, se eu fizer um lambda de 2 parâmetros para uso com uma injeção assim,

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

Eu quero poder dizer

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

já que 'injetar' tem um opcionalsolteiro parâmetro para o valor inicial, mas isso me dá ...

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

No entanto, se eu encher o '& multL' em umsegundo parâmetro para injetar, então funciona.

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

Minha pergunta é "por que isso funciona e não a tentativa anterior?"

questionAnswers(1)

yourAnswerToTheQuestion