Nick Coghlan <[EMAIL PROTECTED]> wrote: ...
Perhaps something like:
accepts_func( (def (a, b, c) to f(a) + o(b) - o(c)) )
Nice, except I think 'as' would be better than 'to'. 'as' should be a full keyword in 3.0 anyway (rather than a surprisingly-NOT-keyword like today), and "define something as somethingelse" seems marginally more readable to me than "define something to somethingelse" anyway.
I actually flipped back and forth between preferring 'as' and 'to' while writing the message.
It was the mathematical phrasing of "f is a function from R to R" (replacing the capital R's with the symbol for the real numbers) that first made me think of 'to', since I was trying to emphasise the parallels with mathematical functions. (To my mind, theoretical mathematics is one of the areas with significant legitimate uses for lambda functions).
The '->' suggestion had a similar source.
The way I'd read the 'to' version out loud when explaining to someone what the code did:
"DEFine an anonymous function from arguments a, b and c TO the value f of a plus o of b minus o of c"
or the short version:
"DEFine a function from a, b and c TO f a plus o b minus o c"
As an even simpler example, (def (x) to x * x) would be "define a function from x to x squared". (def () to <whatever>) would be "define a function from no arguments to <whatever>"
'as' already implies renaming semantics due to from-style imports. In Py3k, it's likely to pick up the naming duties in except clauses as well (i.e. "except ValueError, TypeError as ex:").
'as' is also a candidate for optional static typing and adaptation (and hopefully someone will talk Guido out of his punctuation happy version of that!).
I eventually decided that using 'as' for anonymous functions as well would just be plain confusing.
Cheers, Nick.
-- Nick Coghlan | [EMAIL PROTECTED] | Brisbane, Australia --------------------------------------------------------------- http://boredomandlaziness.skystorm.net -- http://mail.python.org/mailman/listinfo/python-list