yield calls the block passed to a method — it transfers control to the block, optionally passing values to it, then resumes the method. It's how methods invoke the blocks given to them, and the mechanism behind Ruby's iteration and many elegant patterns.
Basic yield — call the given block
puts
puts
greet { puts }
