Proc & Lambda
proc keyword defines a block.
In this way we can store the block in a variable.
Later we can call that block using method
procs can also take arguments.
Ruby also has keyword
lambda which is very similar to
lambda enforces arity. It means if a lambda accepts 2 arguments and
if we pass 3 arguments then lambda will raise an error. In such
proc will ignore the extra argument.