Promoting Python
Ian Kelly
ian.g.kelly at gmail.com
Wed Apr 6 14:50:29 EDT 2016
On Wed, Apr 6, 2016 at 8:14 AM, Marko Rauhamaa <marko at pacujo.net> wrote:
> Now, if Python had an unlimited range() iterator/iterable, you could use
> a "for" statement to emulate "while".
You can already do this.
>>> class While:
... def __init__(self, predicate):
... self._predicate = predicate
... self._exited = False
... def __iter__(self):
... return self
... def __next__(self):
... if self._exited or not self._predicate():
... self._exited = True
... raise StopIteration
...
>>> i = 0
>>> for _ in While(lambda: i < 10):
... print(i)
... i += 1
...
0
1
2
3
4
5
6
7
8
9
> As it stands, Python without "while" could only compute
> primitive-recursive functions. However, you only need "while" a maximum
> of one time in your whole program to perform an arbitrary computation.
So this is wrong.
More information about the Python-list
mailing list