On 2017-12-01 13:24, Random832 wrote:
> On Fri, Dec 1, 2017, at 05:31, Steven D'Aprano wrote:
>> I'm more confused than ever. You seem to be arguing that Python
>> functions CAN short-circuit their arguments and avoid evaluating them.
>> Is that the case?
>>> If this is merely about when the name "function" is looked up, then I
>> don't see why that's relevant to the PEP.
>>>> What am I missing?
>> You're completely missing the context of the discussion, which was the
> supposed reason that a *new* function call operator, with the proposed
> syntax function?(args), that would short-circuit (based on the
> 'function' being None) could not be implemented. The whole thing doesn't
> make sense to me anyway, since a new operator could have its own
> sequence different from the existing one if necessary.
>The code:
function?(args)
would be equivalent to:
None if function is None else function(args)
where 'function' would be evaluated once.
If function is None, the arguments would not be evaluated.