--Here is the OOP version of this in Eiffel... --that is to say, the "proper" way to do Eiffel: class OO_BEERS -- Produce the ditty -- Nick Leaton creation make feature wall_top: WALL make is do from !!wall_top.make (9) until wall_top.empty loop io.put_string (wall_top.description); io.put_string (" on the wall, "); io.put_string(wall_top.description) io.put_character('.'); io.put_string ("%NTake one down and pass it all around, "); wall_top.remove; io.put_string (wall_top.description) io.put_string (" on the wall. %N%N"); end io.put_string ("%NGo to the store and buy some more,%N%N"); wall_top.make (9); io.put_string (wall_top.description) io.put_string (" on the wall. %N%N"); end end -- class OO_BEERS