Type:
Class
Proc
objects are blocks of code that have been bound to a set
of local variables. Once bound, the code may be called in different
contexts and still access those variables.
1 2 3 4 5 6 7 8 9 10 | def gen_times(factor) return Proc . new {|n| n*factor } end times3 = gen_times( 3 ) times5 = gen_times( 5 ) times3.call( 12 ) #=> 36 times5.call( 5 ) #=> 25 times3.call(times5.call( 4 )) #=> 60 |