[Python-3000] lambda

Neil Toronto ntoronto at cs.byu.edu
Thu Mar 27 17:19:12 CET 2008


Olivier Verdier wrote:
> On 26/03/2008, *Nick Coghlan* <ncoghlan at gmail.com 
> Lambda calculus is a
> well established field of mathematics, so it's a perfectly valid name
> for the construct.
>> In my university in Sweden lambda calculus is never taught neither in 
> pure nor applied math. It is only a part of a course in computer science 
> applied to linguistics. The word "lambda" however is used all over the 
> place as an eigenvalue, or a wave length, or parameter, or Lamé 
> coefficient in many of our courses.

Yep. In my seven years of CS instruction so far, I've only come across 
this once, in a theory of programming languages course. "Lambda" simply 
doesn't show up unless you do language theory or program in a Lisp... or 
in Python.
> I also agree with the idea that the lambda construct should rather use a 
> keyword free syntax like "x -> 3*x" or something of that kind. That 
> would be gorgeous.

How about reusing "def" to make a lambda expression?
 f = def x, y: x**2 + y**2
or
 f = def(x, y): x**2 + y**2
By the time someone comes across this:
 map(def(x): x**2, lst)
in code, they've already created plenty of functions using "def", so it 
should be immediately obvious what it's doing. It's a little less terse 
than Haskell's "\->" or Greg's "=>", but not much. It also frees up a 
keyword and doesn't create a new operator-ish looking one. Lastly, I 
can't imagine that it would be *too* difficult to parse, especially the 
variation with parenthesis.
Neil


More information about the Python-3000 mailing list

AltStyle によって変換されたページ (->オリジナル) /