On Wed, Jun 3, 2015 at 3:16 PM, Stefan Karpinski <[email protected]> wrote: > You could use a task, but the performance would be much less good than > explicitly manipulating the iteration state for many things. >
Manually iterating is not that bad so I think I would prefer a solution that yield similar performance. Actually, can(/is it reasonable to make) type inference inline the type as well if all use of it are inlined? > >> On Jun 2, 2015, at 6:45 PM, Yichao Yu <[email protected]> wrote: >> >> I'm wondering what is the best way to do the equivalant with the >> following in python. >> >> ``` >> In [1]: a = range(20) >> >> In [2]: it = iter(a) >> >> In [3]: for i in it: >> if i == 10: >> break >> ...: >> >> In [4]: for i in it: >> ...: print(i) >> ...: >> 11 >> 12 >> 13 >> 14 >> 15 >> 16 >> 17 >> 18 >> 19 >> ``` >> >> I know that I can call `start`, `next` and `done` manually but it >> would be nice if I can avoid that. >> >> I could also wrap the returned value of next in a type but I don't >> know how to make it both generic and fast, e.g. I want the typeinf to >> infer the type as easy as if I call the `start`.... methods manually >> and I don't want to rely on `next` being type stable (and AFAICT, the >> `next` for Any array is not). >> >> >> The exact format doesn't have to be the same with the python version >> but I do want to use `for` loop instead of `while`.
