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.
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
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
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}
\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
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
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}
\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
\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
\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