summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>1993-12-17 12:13:53 (GMT)
committerGuido van Rossum <guido@python.org>1993-12-17 12:13:53 (GMT)
commit3cbc16d9041fe1fa87356bdacc2f1ad52fb99a89 (patch)
tree75beb159dc2d0d9d19de7ea7352ae1afa48d8b17
parent67a5fdbcc2d86cda9ee2efb7a97cb458036d6927 (diff)
downloadcpython-3cbc16d9041fe1fa87356bdacc2f1ad52fb99a89.zip
cpython-3cbc16d9041fe1fa87356bdacc2f1ad52fb99a89.tar.gz
cpython-3cbc16d9041fe1fa87356bdacc2f1ad52fb99a89.tar.bz2
* lib2.tex (sys): updated sys.std{in,out,err} docs. Added
sys.tracebacklimit. * tut.tex (Exceptions): change text printed by traceback. * lib5.tex (audioop): added minmax. * lib5.tex (audioop.getsample): move wandered paragraph back * lib3.tex, partparse.py: undo mucking with \nopagebreak (didn't work). * partparse.py: ignore \nopagebreak command * ref5.tex: added description of lambda forms. * ref7.tex: added reference to lambda forms to section on function definition. * lib1.tex: removed lambda as built-in function (it is now a special form). Also removed feature of filter, map, reduce to turn a string argument into an anonymous function.
-rw-r--r--Doc/Makefile5
-rw-r--r--Doc/ref/ref5.tex16
-rw-r--r--Doc/ref/ref7.tex4
-rw-r--r--Doc/ref5.tex16
-rw-r--r--Doc/ref7.tex4
-rw-r--r--Doc/tut.tex2
-rw-r--r--Doc/tut/tut.tex2
7 files changed, 43 insertions, 6 deletions
diff --git a/Doc/Makefile b/Doc/Makefile
index f4a747d..d13f59f 100644
--- a/Doc/Makefile
+++ b/Doc/Makefile
@@ -41,13 +41,14 @@ qua:
latex qua
dvips qua >qua.ps
-lib.texi: lib1.tex lib2.tex lib3.tex lib4.tex lib5.tex texipre.dat texipost.dat
+lib.texi: lib1.tex lib2.tex lib3.tex lib4.tex lib5.tex \
+ texipre.dat texipost.dat partparse.py
python partparse.py -o @lib.texi lib[1-5].tex
mv @lib.texi lib.texi
.PRECIOUS: lib.texi
-python-lib.info: lib.texi
+python-lib.info: lib.texi fix.el
emacs -batch -l fix.el -f save-buffer -kill
makeinfo +footnote-style end +fill-column 72 +paragraph-indent 0 \
lib.texi
diff --git a/Doc/ref/ref5.tex b/Doc/ref/ref5.tex
index 59ba90a..55f523f 100644
--- a/Doc/ref/ref5.tex
+++ b/Doc/ref/ref5.tex
@@ -604,10 +604,11 @@ object. $x ~\verb\is not\~ y$ yields the inverse truth value.
Boolean operations have the lowest priority of all Python operations:
\begin{verbatim}
-condition: or_test
+condition: or_test | lambda_form
or_test: and_test | or_test "or" and_test
and_test: not_test | and_test "and" not_test
not_test: comparison | "not" not_test
+lambda_form: "lambda" [parameter_list]: condition
\end{verbatim}
In the context of Boolean operations, and also when conditions are
@@ -638,6 +639,19 @@ invent a value anyway, it does not bother to return a value of the
same type as its argument, so e.g. \verb\not 'foo'\ yields \verb\0\,
not \verb\''\.)
+Lambda forms (lambda expressions) have the same syntactic position as
+conditions. They are a shorthand to create anonymous functions; the
+expression \verb\lambda\ {\em arguments}\verb\:\ {\em condition}
+yields a function object that behaves virtually identical to one
+defined with \verb\def\ {\em name}\verb\(\{\em arguments}\verb\) :
+return\ {\em condition}. See section \ref{function} for the syntax of
+parameter lists. Note that functions created with lambda forms cannot
+contain statements.
+\label{lambda}
+\indexii{lambda}{expression}
+\indexii{lambda}{form}
+\indexii{anonmymous}{function}
+
\section{Expression lists and condition lists}
\indexii{expression}{list}
\indexii{condition}{list}
diff --git a/Doc/ref/ref7.tex b/Doc/ref/ref7.tex
index 0f96c82..670eec0 100644
--- a/Doc/ref/ref7.tex
+++ b/Doc/ref/ref7.tex
@@ -292,6 +292,10 @@ parameters) are bound to the (formal) parameters, as follows:
\indexii{parameter}{formal}
\indexii{parameter}{actual}
+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}.
+
\begin{itemize}
\item
diff --git a/Doc/ref5.tex b/Doc/ref5.tex
index 59ba90a..55f523f 100644
--- a/Doc/ref5.tex
+++ b/Doc/ref5.tex
@@ -604,10 +604,11 @@ object. $x ~\verb\is not\~ y$ yields the inverse truth value.
Boolean operations have the lowest priority of all Python operations:
\begin{verbatim}
-condition: or_test
+condition: or_test | lambda_form
or_test: and_test | or_test "or" and_test
and_test: not_test | and_test "and" not_test
not_test: comparison | "not" not_test
+lambda_form: "lambda" [parameter_list]: condition
\end{verbatim}
In the context of Boolean operations, and also when conditions are
@@ -638,6 +639,19 @@ invent a value anyway, it does not bother to return a value of the
same type as its argument, so e.g. \verb\not 'foo'\ yields \verb\0\,
not \verb\''\.)
+Lambda forms (lambda expressions) have the same syntactic position as
+conditions. They are a shorthand to create anonymous functions; the
+expression \verb\lambda\ {\em arguments}\verb\:\ {\em condition}
+yields a function object that behaves virtually identical to one
+defined with \verb\def\ {\em name}\verb\(\{\em arguments}\verb\) :
+return\ {\em condition}. See section \ref{function} for the syntax of
+parameter lists. Note that functions created with lambda forms cannot
+contain statements.
+\label{lambda}
+\indexii{lambda}{expression}
+\indexii{lambda}{form}
+\indexii{anonmymous}{function}
+
\section{Expression lists and condition lists}
\indexii{expression}{list}
\indexii{condition}{list}
diff --git a/Doc/ref7.tex b/Doc/ref7.tex
index 0f96c82..670eec0 100644
--- a/Doc/ref7.tex
+++ b/Doc/ref7.tex
@@ -292,6 +292,10 @@ parameters) are bound to the (formal) parameters, as follows:
\indexii{parameter}{formal}
\indexii{parameter}{actual}
+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}.
+
\begin{itemize}
\item
diff --git a/Doc/tut.tex b/Doc/tut.tex
index 6fb209f..5327488 100644
--- a/Doc/tut.tex
+++ b/Doc/tut.tex
@@ -1760,7 +1760,7 @@ however, and result in error messages as shown here:
\bcode\small\begin{verbatim}
>>> 10 * (1/0)
-Stack backtrace (innermost last):
+Traceback (innermost last):
File "<stdin>", line 1
ZeroDivisionError: integer division or modulo
>>> 4 + foo*3
diff --git a/Doc/tut/tut.tex b/Doc/tut/tut.tex
index 6fb209f..5327488 100644
--- a/Doc/tut/tut.tex
+++ b/Doc/tut/tut.tex
@@ -1760,7 +1760,7 @@ however, and result in error messages as shown here:
\bcode\small\begin{verbatim}
>>> 10 * (1/0)
-Stack backtrace (innermost last):
+Traceback (innermost last):
File "<stdin>", line 1
ZeroDivisionError: integer division or modulo
>>> 4 + foo*3