From: Florent Guiliani Date: 2006-10-19T19:37:02+09:00 Subject: My second day of learning Ruby (and my seconds feels) Hi all, Thanks for your anwers yesterday. Are you ready for my next day of learning Ruby? ;) First impressions of ranges: --------------------------- let's try ranges as sequences: irb(main):271:0> (0..2).each { |bb| puts bb } 0 1 2 => 0..2 irb(main):272:0> (0...2).each { |bb| puts bb } 0 1 => 0...2 very fun. Now let's try ranges as conditions: irb(main):282:0* a=[ "aaa", "bbbb", "bbbbbb", "ccc", "dddddd" ] => ["aaa", "bbbb", "bbbbbb", "ccc", "dddddd"] irb(main):283:0> a.each { |b| puts b if b=~/b/..b=~/d/ } bbbb bbbbbb ccc dddddd => ["aaa", "bbbb", "bbbbbb", "ccc", "dddddd"] irb(main):284:0> a.each { |b| puts b if b=~/b/...b=~/d/ } bbbb bbbbbb ccc dddddd => ["aaa", "bbbb", "bbbbbb", "ccc", "dddddd"] "Oups it did not it again!" .. and ... seems not working on the same way if you use ranges as sequences or ranges as conditions. My point of view: (unless I'm making a mistake) It gets confusing. First impressions of blocks: ---------------------------- irb(main):293:0* a=[ "aaa", "bbbb", "bbbbbb", "ccc", "dddddd" ] => ["aaa", "bbbb", "bbbbbb", "ccc", "dddddd"] irb(main):294:0> a.each { |a| puts a } aaa bbbb bbbbbb ccc dddddd => ["aaa", "bbbb", "bbbbbb", "ccc", "dddddd"] irb(main):295:0> a => "dddddd" a is changed. scope of the block is not duplicate/separate? Florent,