Commit 863983e8 authored by Raymond Hettinger's avatar Raymond Hettinger

Add comment on performance.

Fix missing right parenthesis.
Add three examples.
parent a69d409f
......@@ -27,14 +27,21 @@ which produces a sequence \code{f(0), f(1), ...}. This toolbox
provides \function{imap()} and \function{count()} which can be combined
to form \code{imap(f, count())} and produce an equivalent result.
Likewise, the functional tools are designed to work well with the
high-speed functions provided by the \refmodule{operator} module.
The module author welcomes suggestions for other basic building blocks
to be added to future versions of the module.
Whether cast in pure python form or C code, tools that use iterators
are more memory efficient (and faster) than their list based counterparts.
Adopting the principles of just-in-time manufacturing, they create
data when and where needed instead of consuming memory with the
computer equivalent of ``inventory''.
The module author welcomes suggestions for other basic building blocks
to be added to future versions of the module.
The performance advantage of iterators becomes more acute as the number
of elements increases -- at some point, lists grow large enough to
to severely impact memory cache performance and start running slowly.
\begin{seealso}
\seetext{The Standard ML Basis Library,
......@@ -105,7 +112,7 @@ by functions or loops that truncate the stream.
Note, this is the only member of the toolkit that may require
significant auxiliary storage (depending on the length of the
iterable.
iterable).
\end{funcdesc}
\begin{funcdesc}{dropwhile}{predicate, iterable}
......@@ -355,4 +362,15 @@ from building blocks.
... "s -> (s0,s1), (s1,s2), (s2, s3), ..."
... return izip(seq, islice(seq,1,len(seq)))
>>> def padnone(seq):
... "Returns the sequence elements and then returns None indefinitely"
... return chain(seq, repeat(None))
>>> def ncycles(seq, n):
... "Returns the sequence elements n times"
... return chain(*repeat(seq, n))
>>> def dotproduct(vec1, vec2):
... return sum(imap(operator.mul, vec1, vec2))
\end{verbatim}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment