I have a little question on passing block.

```
def a_method(a, b)
  a + yield(a, b)
end

```

This works fine.

```
k = a_method(1, 2) do |x, y| 
  (x + y) * 3 
end
puts k

```

But this won't work.

```
puts a_method(1, 2) do |x, y| 
  (x + y) * 3 
end
# LocalJumpError: no block given (yield)

```

Can anyone kindly explain this to me?

Thanks. Example taken from Metaprogramming Ruby by Paolo Perrotta. Great book.