# confused with lambda~

Sean 'Shaleh' Perry shalehperry at attbi.com
Tue Sep 24 11:15:15 EDT 2002

```On Tuesday 24 September 2002 01:48, black wrote:
> that describe in reference documentation is too short, I couldnt even
> understand what it trying to say. any explanation please ?
>

lambda is way to define a function without giving it a name.

lambda x,y: x + y

defines a function which takes two parameters -- x and y -- and returns their
sum.

do_sum = lambda x,y: x + y

do_sum(2,3)

yields 5.  As you can see we store the function as do_sum.  So let's take this
a step further.

numbers = range(1,21) # numbers 1 - 20
sum = reduce(lambda x,y: x + y, numbers)

sum will be the sum of all numbers 1 - 20.  This is equivalent to the
following code:

sum = 0
for n in numbers:
sum = sum + do_sum(sum, n)

The idea is lambda let's you write little one off functions when you need them
rather than have to define one somewhere and likely only use it once.

In a lambda on expressions are valid so no assignment or print calls can
happen.  If you need that you must define a function.

Hope this helps.

```