procとcall
Rubyでは、proc { ... }で手続きが作れ、callで手続きを呼び出せます。
p(123) # => 123 pp = proc { |x| p(x) } pp.call(123) # => 123 ppp = proc { |xx, x| xx.call(x) } ppp.call(pp,123) # => 123 pppp = proc { |xxx, xx, x| xxx.call(xx, x) } pppp.call(ppp, pp, 123) # => 123 ppppp = proc { |xxxx, xxx, xx, x| xxxx.call(xxx, xx, x) } ppppp.call(pppp, ppp, pp, 123) # => 123