[Python-ideas] Does jargon make learning more difficult?
Jonathan Fine
jfine2358 at gmail.com
Tue Aug 21 16:51:38 EDT 2018
Hi Abe
First, I have reservations about the name lambda. But there's a lot of
code out there that uses lambda, and I'd like that code to continue to
run.
You wrote:
> func = value[card.suit] if card not in wilds else wild_value with card
I thought I'd try this, and variants, in the Python interpreter. I got
# An expression. It's valid syntax, get run-time error.
>>> value[card.suit] if card not in wilds else wild_value
NameError: name 'card' is not defined
# An expression. It's valid syntax. Its value is a function. No run-time error.
>>> lambda card: value[card.suit] if card not in wilds else wild_value
<function <lambda> at 0x7ff815e2bbf8>
# If Python were enhanced, an valid expression whose value is a function.
>>> value[card.suit] if card not in wilds else wild_value with card
SyntaxError: invalid syntax
My understanding is that you prefer
>>> EXPRESSION with IDEN
to
>>> lambda IDEN: EXPRESSION
How do you feel about this, as a means of defining an anonymous function?
>>> with IDEN: EXPRESSION
We can't adopt it, of course, because it's already valid syntax, but
with semantics.
>>> with wibble:
... wobble
NameError: name 'wibble' is not defined
Now for a trick question. Consider
>>> fn = (lambda : EXPRESSION)
This produces a function that has zero parameters.
How would you write this, using 'with'. Would it be:
>>> fn = (EXPRESSION with)
I think this looks rather odd.
--
Jonathan
More information about the Python-ideas
mailing list