[Python-ideas] Null coalescing operators

Stephen J. Turnbull stephen at xemacs.org
Mon Sep 21 18:29:43 CEST 2015


Andrew Barnert writes:
 > On Sep 21, 2015, at 01:48, Stephen J. Turnbull <stephen at xemacs.org> wrote:
 > 
 > >>>>> retries = default else cls.DEFAULT
 > > 
 > > I kinda like this if-less else syntax for the symmetry with else-less
 > > if.  
 > 
 > How do you parse this:
 > 
 >     a if b else c else d
 > 
 > Feel free to answer either as a human reader or as CPython's LL(1)
 > parser.

I don't know what an LL(1) parser could do offhand.  As a human, I
would parse that greedily as (a if b else c) else d.

But the point's actually moot, as I'm -1 on the "??" operator in any
form in favor of the explicit "a if a is not None else b" existing
syntax.  And to be honest, the fact that a truly symmetric "if-less
else" would have "or" semantics, not "??" semantics, bothers me more
than the technical issue of whether anybody could actually parse it.




More information about the Python-ideas mailing list