From: Assaph Mehr Date: 2005-03-24T08:09:54+09:00 Subject: Re: Block Passing and &foo Parameters > The advantage to something like this is if you have one function you > want to pass to a number of things, such as lists: > > irb(main):016:0> a = [1,2,3] > => [1, 2, 3] > irb(main):017:0> b = [4,5,6] > => [4, 5, 6] > irb(main):018:0> func = lambda {|i| puts i} > => # > irb(main):019:0> a.each func > ArgumentError: wrong number of arguments (1 for 0) > from (irb):19:in `each' > from (irb):19 > from :0 > irb(main):020:0> b.each func You can easily pass a lambda to somethig that expects a block - just put another & before lambda param at the point of call: irb(main):001:0> a = [1,2,3] => [1, 2, 3] irb(main):002:0> b = [4,5,6] => [4, 5, 6] irb(main):003:0> func = lambda{|i| puts i} => # irb(main):004:0> a.each &func 1 2 3 => [1, 2, 3]