Lambda function

From CS 61A Wiki
Revision as of 08:02, 13 June 2014 by Axis (Talk | contribs)

Jump to: navigation, search

A lambda function is an anonymous function; that is, it has no intrinsic name. It is a compact way to define a function inline without using the def statement. Use a lambda function if its body is a single expression.

Lambda functions can be used wherever function objects are required.


lambda args: return_expression

The lambda expression above in Python is equivalent to the function defined below.

def <lambda>(args):
    return return_expression

Note that unlike with def, the lambda function does not automatically get bound to a name in the frame (hence its anonymity). In an environment diagram, a new function object is created in the heap when the lambda expression gets evaluated.


>>> def call_f(f):
...     return f()
>>> call_f(lambda: 3)

You can bind a variable name to a lambda function if you want to refer to it in the future:

>>> even = lambda x: x % 2 == 0
>>> even(40)
>>> even(5)

You can also call lambda functions like regular functions:

>>> (lambda x: x % 2 == 0)(40)

External links