summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGeorg Brandl <georg@python.org>2013-10-06 08:28:48 (GMT)
committerGeorg Brandl <georg@python.org>2013-10-06 08:28:48 (GMT)
commit6930777c63899e25ad5bb1033da8294f7aaedd4e (patch)
tree6bdb05ac995debacf810f2ebfe59177ccdb7ab5e
parentce28e2c24b4c8bbead80f0ef0e948daff3ba4be6 (diff)
parent242e6a0bce9143c62262817b17b46d32a3c916a3 (diff)
downloadcpython-6930777c63899e25ad5bb1033da8294f7aaedd4e.zip
cpython-6930777c63899e25ad5bb1033da8294f7aaedd4e.tar.gz
cpython-6930777c63899e25ad5bb1033da8294f7aaedd4e.tar.bz2
merge with 3.3
-rw-r--r--Doc/faq/design.rst10
-rw-r--r--Doc/reference/compound_stmts.rst10
-rw-r--r--Doc/reference/expressions.rst13
-rw-r--r--Doc/tutorial/controlflow.rst2
4 files changed, 18 insertions, 17 deletions
diff --git a/Doc/faq/design.rst b/Doc/faq/design.rst
index 724eecf..0f1c558 100644
--- a/Doc/faq/design.rst
+++ b/Doc/faq/design.rst
@@ -347,20 +347,20 @@ Answer 2: Fortunately, there is `Stackless Python <http://www.stackless.com>`_,
which has a completely redesigned interpreter loop that avoids the C stack.
-Why can't lambda forms contain statements?
-------------------------------------------
+Why can't lambda expressions contain statements?
+------------------------------------------------
-Python lambda forms cannot contain statements because Python's syntactic
+Python lambda expressions cannot contain statements because Python's syntactic
framework can't handle statements nested inside expressions. However, in
Python, this is not a serious problem. Unlike lambda forms in other languages,
where they add functionality, Python lambdas are only a shorthand notation if
you're too lazy to define a function.
Functions are already first class objects in Python, and can be declared in a
-local scope. Therefore the only advantage of using a lambda form instead of a
+local scope. Therefore the only advantage of using a lambda instead of a
locally-defined function is that you don't need to invent a name for the
function -- but that's just a local variable to which the function object (which
-is exactly the same type of object that a lambda form yields) is assigned!
+is exactly the same type of object that a lambda expression yields) is assigned!
Can Python be compiled to machine code, C or some other language?
diff --git a/Doc/reference/compound_stmts.rst b/Doc/reference/compound_stmts.rst
index c25c767..e35aa9f 100644
--- a/Doc/reference/compound_stmts.rst
+++ b/Doc/reference/compound_stmts.rst
@@ -536,17 +536,17 @@ function. The annotation values are available as values of a dictionary keyed
by the parameters' names in the :attr:`__annotations__` attribute of the
function object.
-.. index:: pair: lambda; form
+.. index:: pair: lambda; expression
It is also possible to create anonymous functions (functions not bound to a
-name), for immediate use in expressions. This uses lambda forms, described in
-section :ref:`lambda`. Note that the lambda form is merely a shorthand for a
+name), for immediate use in expressions. This uses lambda expressions, described in
+section :ref:`lambda`. Note that the lambda expression is merely a shorthand for a
simplified function definition; a function defined in a ":keyword:`def`"
statement can be passed around or assigned to another name just like a function
-defined by a lambda form. The ":keyword:`def`" form is actually more powerful
+defined by a lambda expression. The ":keyword:`def`" form is actually more powerful
since it allows the execution of multiple statements and annotations.
-**Programmer's note:** Functions are first-class objects. A "``def``" form
+**Programmer's note:** Functions are first-class objects. A "``def``" statement
executed inside a function definition defines a local function that can be
returned or passed around. Free variables used in the nested function can
access the local variables of the function containing the def. See section
diff --git a/Doc/reference/expressions.rst b/Doc/reference/expressions.rst
index c0132bd..87a6d2e 100644
--- a/Doc/reference/expressions.rst
+++ b/Doc/reference/expressions.rst
@@ -1218,8 +1218,8 @@ Conditional expressions
.. productionlist::
conditional_expression: `or_test` ["if" `or_test` "else" `expression`]
- expression: `conditional_expression` | `lambda_form`
- expression_nocond: `or_test` | `lambda_form_nocond`
+ expression: `conditional_expression` | `lambda_expr`
+ expression_nocond: `or_test` | `lambda_expr_nocond`
Conditional expressions (sometimes called a "ternary operator") have the lowest
priority of all Python operations.
@@ -1243,10 +1243,10 @@ Lambdas
pair: anonymous; function
.. productionlist::
- lambda_form: "lambda" [`parameter_list`]: `expression`
- lambda_form_nocond: "lambda" [`parameter_list`]: `expression_nocond`
+ lambda_expr: "lambda" [`parameter_list`]: `expression`
+ lambda_expr_nocond: "lambda" [`parameter_list`]: `expression_nocond`
-Lambda forms (lambda expressions) have the same syntactic position as
+Lambda expressions (sometimes called lambda forms) have the same syntactic position as
expressions. They are a shorthand to create anonymous functions; the expression
``lambda arguments: expression`` yields a function object. The unnamed object
behaves like a function object defined with ::
@@ -1255,7 +1255,8 @@ behaves like a function object defined with ::
return expression
See section :ref:`function` for the syntax of parameter lists. Note that
-functions created with lambda forms cannot contain statements or annotations.
+functions created with lambda expressions cannot contain statements or
+annotations.
.. _exprlists:
diff --git a/Doc/tutorial/controlflow.rst b/Doc/tutorial/controlflow.rst
index 56df73d..52e382e 100644
--- a/Doc/tutorial/controlflow.rst
+++ b/Doc/tutorial/controlflow.rst
@@ -588,7 +588,7 @@ 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
+Lambda functions 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