Lambda function

From CS 61A Wiki
(Redirected from Lambda functions)
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.

Definition

lambda args: return_expression

The lambda expression above in Python is roughly 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.

Examples

>>> def call_f(f):
...     return f()
... 
>>> call_f(lambda: 3)
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)
True
>>> even(5)
False

You can also call lambda functions like regular functions:

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

External links