[Python-checkins] python/dist/src/Doc/whatsnew whatsnew25.tex, 1.11, 1.12

akuchling at users.sourceforge.net akuchling at users.sourceforge.net
Sat Apr 9 17:51:46 CEST 2005


Update of /cvsroot/python/python/dist/src/Doc/whatsnew
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2528

Modified Files:
	whatsnew25.tex 
Log Message:
Add more text

Index: whatsnew25.tex
===================================================================
RCS file: /cvsroot/python/python/dist/src/Doc/whatsnew/whatsnew25.tex,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -d -r1.11 -r1.12
--- whatsnew25.tex	21 Mar 2005 05:47:11 -0000	1.11
+++ whatsnew25.tex	9 Apr 2005 15:51:44 -0000	1.12
@@ -28,18 +28,40 @@
 %======================================================================
 \section{PEP 309: Partial Function Application}
 
-For programs written in a functional style, it can be useful to
-construct variants of existing functions that have some of the
-parameters filled in.  This is called ``partial function application''.
-The new \module{functional} module contains a \class{partial} class
-that provides partial application.  
-
 The \module{functional} module is intended to contain tools for
 functional-style programming.  Currently it only contains
 \class{partial}, but new functions will probably be added in future
 versions of Python.
 
-% XXX write rest of this
+For programs written in a functional style, it can be useful to
+construct variants of existing functions that have some of the
+parameters filled in.  Consider a Python function \code{f(a, b, c)};
+you could create a new function \code{g(b, c)} that was equivalent to
+\code{f(1, b, c)}.  This is called ``partial function application'',
+and is provided by the \class{partial} class in the new
+\module{functional} module.
+
+The constructor for \class{partial} takes the arguments
+\code{(\var{function}, \var{arg1}, \var{arg2}, ...
+\var{kwarg1}=\var{value1}, \var{kwarg2}=\var{value2})}.  The resulting
+object is callable, so you can just call it to invoke \var{function}
+with the filled-in arguments.
+
+Here's a small but realistic example:
+
+\begin{verbatim}
+import functional
+
+def log (message, subsystem):
+    "Write the contents of 'message' to the specified subsystem."
+    print '%s: %s' % (subsystem, message)
+    ...
+
+server_log = functional.partial(log, subsystem='server')
+\end{verbatim}
+
+Here's another example, from a program that uses PyGTk.  
+
 % XXX add example from my GTk programming
 
 



More information about the Python-checkins mailing list