summaryrefslogtreecommitdiffstats
path: root/Doc/tutorial
diff options
context:
space:
mode:
authorGeorg Brandl <georg@python.org>2013-10-06 08:22:45 (GMT)
committerGeorg Brandl <georg@python.org>2013-10-06 08:22:45 (GMT)
commitd6d26ec9089b8f474a1b6911cb078d8de531867b (patch)
tree86bae77b68c050e21e1403c11881df3dd8dc39a1 /Doc/tutorial
parentc5c900defbfa8bc26acdaf97b582c05d08049c20 (diff)
downloadcpython-d6d26ec9089b8f474a1b6911cb078d8de531867b.zip
cpython-d6d26ec9089b8f474a1b6911cb078d8de531867b.tar.gz
cpython-d6d26ec9089b8f474a1b6911cb078d8de531867b.tar.bz2
Closes #18646: improve lambda docs in tutorial. Original patch by Terry Reedy.
Diffstat (limited to 'Doc/tutorial')
-rw-r--r--Doc/tutorial/controlflow.rst29
1 files changed, 18 insertions, 11 deletions
diff --git a/Doc/tutorial/controlflow.rst b/Doc/tutorial/controlflow.rst
index aad2672..82fbb82 100644
--- a/Doc/tutorial/controlflow.rst
+++ b/Doc/tutorial/controlflow.rst
@@ -541,17 +541,16 @@ In the same fashion, dictionaries can deliver keyword arguments with the ``**``\
.. _tut-lambda:
-Lambda Forms
-------------
-
-By popular demand, a few features commonly found in functional programming
-languages like Lisp have been added to Python. With the :keyword:`lambda`
-keyword, small anonymous functions can be created. Here's a function that
-returns the sum of its two arguments: ``lambda a, b: a+b``. Lambda forms can be
-used wherever function objects are required. They are syntactically restricted
-to a single expression. Semantically, they are just syntactic sugar for a
-normal function definition. Like nested function definitions, lambda forms can
-reference variables from the containing scope::
+Lambda Expressions
+------------------
+
+Small anonymous functions can be created with the :keyword:`lambda` keyword.
+This function returns the sum of its two arguments: ``lambda a, b: a+b``.
+Lambda forms can be used wherever function objects are required. They are
+syntactically restricted to a single expression. Semantically, they are just
+syntactic sugar for a normal function definition. Like nested function
+definitions, lambda functions can reference variables from the containing
+scope::
>>> def make_incrementor(n):
... return lambda x: x + n
@@ -562,6 +561,14 @@ reference variables from the containing scope::
>>> f(1)
43
+The above example uses a lambda expression to return a function. Another use
+is to pass a small function as an argument::
+
+ >>> pairs = [(1, 'one'), (2, 'two'), (3, 'three'), (4, 'four')]
+ >>> pairs.sort(key=lambda pair: pair[1])
+ >>> pairs
+ [(4, 'four'), (1, 'one'), (3, 'three'), (2, 'two')]
+
.. _tut-docstrings: