iterators and views of lists
Rhodri James
rhodri at wildebst.demon.co.uk
Sat Dec 19 21:01:22 EST 2009
On Fri, 18 Dec 2009 21:10:28 -0000, Brendan Miller <catphive at catphive.net>
wrote:
> When I said they are "weak" I meant it in sense that the algorithms
> writeable against an InputerIterator interface (which is what python's
> iterator protocol provides) is a proper subset of the algorithms that
> can be written against a RandomAccessIterator interface. The class of
> algorithms expressible against a python iterator is indeed limited to
> those that can be expressed with a for each loop or map/reduce
> operation.
I think the most relevant thing that can be said to this is that you need
to stop trying to write Python code as if it was C++. The languages
constructs are intended for different purposes; iterators in C++ are part
of the small arsenal of devices needed to provide type-independence to
algorithms, something that comes a lot more easily to Python through
dynamic typing and easy slicing. I'm barely literate in C++, but I can't
see uses for a C++ random access iterator that aren't served in Python by
simple indexing (possibly with additional bounds checking) or a Python
iterator (possibly over a sliced sequence).
The downside, of course, is that you don't have the security provided by
static type checking. You pays your money, you takes your choice;
preferably, however, you don't do like a friend of mine and try to write
FORTRAN in whatever language you're using!
--
Rhodri James *-* Wildebeeste Herder to the Masses
More information about the Python-list
mailing list