From: "Jesús Gabriel y Galán" Date: 2008-03-06T18:01:56+09:00 Subject: Re: Erratic result On Thu, Mar 6, 2008 at 9:49 AM, coolgeng coolgeng wrote: > Hi > I do not know how to explain the different result between the two > snippets: > First snippet: > def dial(digit) > puts digit end > digits = 0..9 > puts digits.each {|digit| dial(digit) } > Why did the first snippet will generate the word like "0..9" at last line? Because you are calling puts with the result of the each method, which in this is the range. Take into account that .each will run the block yielding each element, and then will return something. You can remove the last puts: def dial(digit) puts digit end digits = 0..9 digits.each {|digit| dial(digit) } Jesus.