[Python-ideas] Mashup the existing statement grammars to capture predicates

Carl Smith carl.input at gmail.com
Thu May 24 14:24:39 EDT 2018

This is another suggestion for new syntax for assigning a name to the value
of the predicate in an if, elif or  while statement. It still uses `as` for
its keyword, but with (more flexible) params instead of a direct assignment.

It mashes up the if/while, def/class and for-in grammars, so it still looks
like Python, and boils down to this:

    if|elif|while <predicate> as (<params>): <suite>

If the params contain one simple name (the required minimum), the value of
the predicate is assigned to that name. In any other case, the value must
be a sequence, which gets unpacked:

    while input('$ ').split() as (command, *args):

        if run(command, parse(args)) as (result): render(result)
        else: sys.exit()

-- Carl Smith
carl.input at gmail.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20180524/a5930a33/attachment.html>

More information about the Python-ideas mailing list