C will also work, when it is clear that we're not doing a ternary if. Also it will work with a block to create an array by subsequent calls to the block. This seems too complex, and very likely impossible to automate effectively at this time.
C is still in the default busy context, so it returns a busy array, which C can iterate over safely.
The state of the subroutine can be reset to the initial state with C . Assigning from lazy lists Lazy lists maintain their own iterator, which is advanced as accesses are made from them. Unless marked with an attribute indicating that the list is memoized, a lazy list is not only lazy but also forgetful. The name of this reserved word is a subject of great contention but I have not seen any convincing arguments against having such a keyword. Perhaps it will be a definable keyword.