On Mon, Feb 15, 2021 at 12:02 PM Ricky Teachey <ricky@teachey.org> wrote:
On Mon, Feb 15, 2021, 11:34 AM David Mertz <mertz@gnosis.cx> wrote:
On Mon, Feb 15, 2021 at 4:19 PM Guido van Rossum <guido@python.org> wrote:
Okay, here’s my dilemma. It looks like this thread wants to devise a new syntax for lambda, using e.g. (x, y) -> x+y, or the same with =>. That’s great, but doesn’t open new vistas. OTOH, for people using type annotations, a much more pressing issue is an alternative for typing.Callable that is more readable, and supports extra features that Callable doesn’t, like keyword args, varargs, and pos-only.

FWIW, I *do not* want an alternate spelling for lambda. 

If your time machine were still working, and you could go back to 1991 to change the spelling, yes I might like that.  For that matter, if someone had a good spelling for multi-line lambdas, I might like that.  Or *maybe* some other difference in behavior, but nothing comes immediately to mind.

But allowing a few cryptic punctuation symbols to express an anonymous function while still retaining "the name of a cryptic greek letter" to do exactly the same thing seems like a strong non-goal.

That said, if I had to look at one, I'd like '->' much better than '=>'.

I also don't see this as a very worthwhile goal. 

But if we could expand the  proposal to allow both anonymous and named functions, that would seem like a fantastic idea to me.  

Anonymous function syntax:

(x,y)->x+y

Named function syntax:

f(x,y)->x+y

But since Guido wants to save the right shaft operator for type hinting, and named functions do need a way to write type hints, maybe the best thing to do is use an equal sign shaft for the function definition and the right shaft for the type hint:

f(x,y)=>x,y->str

>>> f('a','b')
'ab'
>>> f(1,2)  # type hint error

Rick. 

Sorry I was typing that last one on my phone and typed a mistake. Should  have been a plus sign in the expression and not a comma:

f(x,y)=>x+y->str

>>> f('a','b')
'ab'
>>> f(1,2)  # type hint error

---
Ricky.

"I've never met a Kentucky man who wasn't either thinking about going home or actually going home." - Happy Chandler