
Greg Ewing wrote:
Ron Adam wrote:
Could it be possible to design it so that the yield path of generators are passed down or forwarded to sub-generators when they are called?
It's really the other way around -- you would need some way of passing the yield path *up* to a generator's caller.
E.g. if A is yielding from B is yielding from C, then A needs a direct path to C.
So when A.next() is called it in effect does a C.next() instead. Is that correct? And when C's yield statement is executed, it needs to return the value to A's caller. So the .next() methods need to be passed up, while the yield return path needs to be passed down? OK, I guess I need to look at some byte/source code. ;-)
Possibly some scheme could be devised to do this, but I don't feel like spending any brain cycles on it until the current scheme is shown to be too slow in practice. Premature optimisation and all that.
Right I agree. I have an intuitive feeling that being able to expose and redirect caller and return values may useful in more ways than just generators. ie.. general functions, translators, encoders, decorators, and possibly method resolution. <shrug> then again, there may not be any easy obvious way to do it. Ron