On 15/04/2017 03:35, Rick Johnson wrote:
On Wednesday, April 12, 2017 at 8:44:30 AM UTC-5, bart...@gmail.com wrote:

At a minimum, every language should offer
the following four loop-forms (using Python semantics):

    while CONDITION:
        doSomething()

    for VALUE in COLLECTION:
        doSomething(value)

    loop(N):
        doSomething()

    loop(N) as i:
       doSomething(i)


Yes, I'm constantly surprised at this, as such syntax has a very low cost (in my last compiler, supporting 'while' for example only added 30 lines to the project).

Of course, it's possible to overdo it; if you look at Lisp, you'll lose yourself in the myriad looping options.

But very common requirements are endless loops, and repeat N times without needing an explicit counter. The former /can/ be easily written as:

    while 1:
        body

but it's more psychological; I don't want to use an idiom to denote an endless loop, I want to be able to express it directly!

Python's byte-code does at least optimise out the check that '1' is true, but that's not what the reader sees, which is 'loop while 1 is true'. And one day it will be:

    while l:
        body

that can be mistaken for that common idiom.

--
bartc
--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to