From: "Brian Schröder" Date: 2005-09-01T19:05:24+09:00 Subject: Re: implementing the "each" method for own classes On 01/09/05, Philipp Huber wrote: > actually i did test it with a queue filled with a few elements. as you > said the condition for the while loop should be testet at the > beginning, otherwise nil could be returned. > so my code looks like this: > > def each > node=@head > while node=node.next > yield node.content > end > end > > do you have an example for the second remark, as i don't quite > understand what you mean > > thanks, > philipp > > Sorry for posting something that untested. But as I look again you continue to have bugs in your code. You are missing the first element. The following should work and also return self. That allows you to do something like the following: queue.each do | element | element.seen += 1 end.each do | element | puts element end Beware that the above example does not make that much sense, but I do not have a better example ready. def each node=@head while node yield node.content node=node.next end self end hope to help Brian -- http://ruby.brian-schroeder.de/ Stringed instrument chords: http://chordlist.brian-schroeder.de/