Deferred expressions (was Re: Lambda as declarative idiom)
Nick Coghlan
ncoghlan at iinet.net.au
Tue Jan 4 04:31:37 EST 2005
Steven Bethard wrote:
> Nick Coghlan: def-from syntax [4]
> (def f(a) + o(b) - o(c) from (a, b, c))
> (def x * x from (x))
> (def x from ())
> (def x.bar(*a, **k) from (*a, **k))
> ((def x(*a, **k) from ()) for x, a, k in funcs_and_args_list)
After a bit more musing, this is definitely my preferred syntax. I'd call it a
'deferred expression' rather than an anonymous function, though. The name change
may seem minor, but it changes the emphasis of the feature from how it's
implemented to what it is useful for (i.e. deferring evaluation of an expression
until call time).
It's also conducive to a clean no-argument syntax - simply make the 'from' claus
optional when the argument list is empty.
'def' and 'from' are already keywords, so there shouldn't be any compatibility
problems.
Michael Spencer's idea of using 'for' instead of 'from' was quite interesting,
but the use of 'for' without a corresponding 'in' feels a bit misleading :)
Cheers,
Nick.
--
Nick Coghlan | ncoghlan at email.com | Brisbane, Australia
---------------------------------------------------------------
http://boredomandlaziness.skystorm.net
More information about the Python-list
mailing list