Two questions on lambda:

Kristian Zoerhoff kristian.zoerhoff at gmail.com
Fri Jun 24 09:09:26 EDT 2005


On 6/24/05, Xavier Décoret <Xavier.Decoret at imag.fr> wrote:
> 
> For example, the code
> 
> # f = lambda : print "hello"
> # f()
> does not compile, although:
> 
> # def f():
> #       print "hello"
> # f()
> 
> does compile. Is there a particular syntax for lambda that I am missing
> or is it simply limited and I cannot do what I want with lambda.

lambda calls can only include functions; print is a statement, not a
function. Try this instead:

import sys
f = lambda : sys.stdout.writelines("Hello")
f()

However, if you're going to be binding the function to a name, there
is no need to use lambda at all; just def a function and be done with
it.

> In the same spirit, how can I do to compute intermediary values in the
> body of a lambda function. Let's say (dummy example):

I leave this to someone more expert than I.

-- 
Kristian

kristian.zoerhoff(AT)gmail.com
zoerhoff(AT)freeshell.org



More information about the Python-list mailing list