From: brabuhr@... Date: 2010-08-04T03:35:50+09:00 Subject: Re: Remove the error On Tue, Aug 3, 2010 at 2:07 PM, Amir Ebrahimifard wrote: > Why these codes result error ? > > 2- > array = [*1..10] > sum = array.inject { |memo,item| puts memo+item } irb(main):001:0> array = [*1..10] => [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] irb(main):002:0> sum = array.inject { |memo,item| puts memo+item } 3 NoMethodError: undefined method `+' for nil:NilClass from (irb):2 from (irb):2:in `inject' from (irb):2:in `each' from (irb):2:in `inject' from (irb):2 from :0 The method 'puts' always returns 'nil': irb(main):003:0> sum = array.inject { |memo,item| puts "#{memo}\t#{item}" } 1 2 3 4 5 6 7 8 9 10 => nil irb(main):004:0> sum = array.inject { |memo,item| puts "#{memo}\t#{item}\t#{memo + item}" } 1 2 3 NoMethodError: undefined method `+' for nil:NilClass from (irb):4 from (irb):4:in `inject' from (irb):4:in `each' from (irb):4:in `inject' from (irb):4 from :0