A critic of Guido's blog on Python's lambda
Thomas F. Burdick
tfb at conquest.OCF.Berkeley.EDU
Sun May 7 06:55:50 EDT 2006
Ken Tilton <kentilton at gmail.com> writes:
> As for:
>
> > At a syntax-sugar
> > level, for example, Lisp's choice to use parentheses as delimiter means
> > it's undesirable, even unfeasible, to use the single character '(' as an
> > ordinary identifier in a future release of the language.
>
> (defun |(| (aside) (format nil "Parenthetically speaking...~a." aside))
> => |(|
> (|(| "your Lisp /is/ rusty.")
> => "Parenthetically speaking...your Lisp /is/ rusty.."
>
> :) No, seriously, is that all you can come up with?
Well, you have to quote your (s-as-identifiers. I tried a goofy hack
of a reader macro for ( to make this parse:
(let (( ( 10))) ( ))
[The spaces are just for readability, not necessary]
Alas, short of cps-transforming the whole reader, I can't see a
reasonable way to get that to parse as a single sexp that, when
evaluated, returns 10. What my reader macro gave me was five sexps:
\(, LET, \(, ((10)), NIL
I'll follow up with the Lisp code (on c.l.l only), in case I'm missing
something simple.
> OK, I propose a duel. We'll co-mentor this:
>
> http://www.lispnyc.org/wiki.clp?page=PyCells
>
> In the end Python will have a Silver Bullet, and only the syntax will
> differ, because Python has a weak lambda, statements do not always
> return values, it does not have macros, and I do not know if it has
> special variables.
I have no idea what the big problem with a multi-line lambda is in
Python, but I wonder if Cells wouldn't run against the same thing. I
often pass around anonymous formulas that eventually get installed in
a slot. Seems annoying to have to name every formula with a
labels-like mechanism.
More information about the Python-list
mailing list