As noted in the comments to the previous post, if you're not using the
Window on an Enumerable that maintains its own internal state (so that the different
IEnumerator yielded up each time will always be at the start of the iteration), it will loop forever. So if you're not using the two in conjunction for the purpose of "read a file in chunks for e.g. passing over a network" or similar, you want this variant:
Ratchet type ensures that the same
IEnumerator instance is yielded up each time -- at this point you have to be rather Jesuitical about what is immutable anyway, the sequence that returns you different mutable objects or the one that returns you the same object you may already have mutated...
F# is less convenient for this one, though :(