>>>>> "M" == Matt Armstrong <matt+dated+1007575275.8c2843 / lickey.com> writes: M> Does the number of arguments used in the block (|i| -vs- |a,b|) change M> the way yield calls the block? No, the the number of arguments used in the block (|i| -vs- |a,b|) change the *interpretation* of the arguments With |i| all arguments are in an Array With |a, b| only the first two arguments are stored in a, b pigeon% irb irb(main):001:0> def each() yield 1,2,3,4,5,6,7,8,9; end nil irb(main):002:0> each() {|i| puts i.type} Array nil irb(main):003:0> each() {|a, b| puts a.type, b.type} Fixnum Fixnum nil irb(main):004:0> each() {|i,| puts i.type} Fixnum nil irb(main):005:0> pigeon% Guy Decoux