Hello,

Although I doubt it will really make it into Python's grammar, I am all +1 for the idea of having "repeat" as a loop keyword in Python.  Actually, I have been using "repeat" as a keyword in Python for quite some time now, and found it not only convenient, but also a great help in education.

My version of "repeat" has two versions.  The primary usage is with an expression that evaluates to a number and specifies how many times the loop is to be repeated:
```
repeat <INT>:
    <SUITE>
```
The second version is without the number, and, indeed, stands for an infinite loop.
```
repeat:
    <SUITE>
```
I must admit, though, that I had hardly ever reason to use the second form.

The implementation is currently built on top of Jython, and uses something like a preprocessor to implement the "repeat"-keyword.  In order to keep some backward compatibility, the preprocessor does check a few cases to determine how it is used, and does not always treat it as a keyword.

Even though it is possible to write a parser that detects if "repeat" is used as the keyword for a loop or anything else, it will make the syntax very brittle.  Take, for instance:
```
repeat (3*4)
```
Now, is this supposed to be a function call, or is it a `repeat`-statement with a missing colon at the end? 

I therefore would strongly advise against having a word act as a keyword sometimes, and sometimes not.  Probably a better solution would be to have something like `from __features__ import repeat` at the beginning.

My reason for introducing "repeat" into Python in the first place was because of didactical considerations.  Even though it might not seem so, variables are indeed a very hard concept in programming, particularly for younger students.  And variables get particularly hard when combined with loops, where the value of a variable changes all the time (this requires a lot of abstract thinking to be properly understood).  Loops alone, on the other hand, are a relatively easy concept that could be used early one.  So, there is this dilemma: how do you teach loops at an early stage without using variables?  That's when I added the "repeat"-keyword for loops, and it has worked marvellously so far :).

Cheers,
Tobias

Quoting James Lu <jam...@gmail.com>:

repeat could be only considered a keyword when it’s used as a loop

Sent from my iPhone

On Sep 26, 2018, at 8:46 AM, Brice Parent <cont...@brice.xyz> wrote:

Le 26/09/2018 à 14:33, James Lu a écrit :
what about “repeat:”?

Sent from my iPhone

I'm not sure it was on purpose, but you replied to me only, and not the entire list. I believe the adding of a new keyword to do something that is already straightforward (`while True:`), and that doesn't add any new functionality, won't probably ever be accepted.

_______________________________________________
Python-ideas mailing list
Python-ideas@python.org
https://mail.python.org/mailman/listinfo/python-ideasCode of Conduct: http://python.org/psf/codeofconduct/
_______________________________________________
Python-ideas mailing list
Python-ideas@python.org
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to