Alex Martelli wrote:
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

Reply via email to