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