Up to now, you have passed blocks to procedures either anonymously (in which case the block is executed with the
yield keyword) or in the form of a named argument, in which case it is executed using the
call method. There is another way to pass a block. When the last argument in a method’s list of parameters is preceded by an ampersand (
&), it is considered to be a Proc object. This gives you the option of passing an anonymous block to a procedure using the same syntax as when passing a block to an iterator, and yet the procedure itself can receive the block as a named argument. Load 5blocks.rb to see some examples of this.
First, here is a reminder of the two ways you’ve already seen of passing blocks. This method ...