Excerpts from Roshan James's mail of 14 Mar 2005 (EST):
> The C# and Py examples actually abstract the details of the objects
> that they generate from the user. Programmers don't explicitely create
> these classes. In the C# world, most people don't know that there is
> an intermediate object involved even. 
> 
[snip]

> Luke, 
> 	Thanks for the continuations implementation - the only problem
> with the approach is that the Ruby interpreter there is also paying the
> cost of maintaining state of the iterator. The continuation does that
> further, only so we can decopule the syntactic dependancy of an iterator
> and its block of code into an explicit function call (next). 
> 
> The problem here IMHO is with language design and it is solved by usage
> of expensive language contructs. Today if I have to solve the problem I
> would go ahead and use generators - I am hoping that the language does
> something better for the future. 

It sounds to me like you've posed a problem at the syntax / abstraction
level but you're rejection solutions for performance / implementation
reasons.

The standard library's generator.rb, Luke's, and Csaba's code all solve
your problem. You can write your code using internal iterators and
someone else can covert them automagically to external iterators for
simultaneous iteration. But you say you don't like these because they
use continuations, even though that's hidden from you and the user of
your object.

Would you be happy if you hadn't looked at the code? Would you be happy
if Ruby continuations were really really fast? Would you be happy if
these generator objects were built-in to the Ruby C api and the
implementation were effective obscured from you?

What is it, exactly, you want Ruby to do?

-- 
William <wmorgan-ruby-talk / masanjin.net>