Я хочу создать новую лямбду, не принимая аргументов от лямбды, принимающей ее.
Скажем, у меня есть
irb(main):001:0> f1 = lambda { |p| p }
=> #<Proc:0x00000001045190@(irb):1 (lambda)>
irb(main):002:0> f1.call(2)
=> 2
и теперь я
irb(main):003:0> f2 = lambda { f1.call(2) }
=> #<Proc:0x00000000f620e8@(irb):3 (lambda)>
irb(main):004:0> f2.call
=> 2
, ноЯ не хочу создавать лямбду вокруг первого, но хочу «подставить» параметр для него или чего-то еще.
Может быть, если у нас есть call
, есть какая-то магия, которая делает то же самое, что и вызов,но возвращает лямбду, за исключением фактического вызова кода:
f2 = f1.some_magic(2)
f2.call
=> 2
PS Извините, если этот вопрос глуп, мне иногда сложно понять этот функциональный материал.
PPS Found эта тема на ruby-forum.com, и, кажется, я хочу сделать то же самое без лишних вызовов.