Passing Named Proc Arguments
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 ...