Proc#call and yield are different for a lambda. Is it intentional?
Ruby code:
def call_block(&l)
l.call
end
def yield_block
yield
end
def lambda_and_call
l = lambda { return 1 }
call_block(&l) + 1
end
def lambda_and_yield
l = lambda { return 1 }
yield_block(&l) + 1
end
[:lambda_and_call, :lambda_and_yield].each { |m| puts "#{m}: #{send(m)}" }
Output:
lambda_and_call: 2
lambda_and_yield: 1