1
proc이 다른 개체에서 실행될 수 있지만 람다가 실행할 수없는 것처럼 보입니다.다른 개체의 컨텍스트에서 람다 실행
[1] pry(main)> class A; def a; 5; end; end
[2] pry(main)> pr = proc { a + 1 } # => #<Proc:[email protected](pry):2>
[3] pry(main)> la = -> { a + 1 } # => #<Proc:[email protected](pry):3 (lambda)>
[4] pry(main)> A.new.instance_eval &pr
=> 6
[5] pry(main)> A.new.instance_eval &la
ArgumentError: wrong number of arguments (1 for 0)
from (pry):3:in `block in __pry__'
[6] pry(main)>
이 예에서는 시저처럼 실행하는 람다를위한 다른 방법이 있나요, 아니면 제가 대신 항상 그와 같은 상황에서 발동을 사용해야합니까?