Paul McGuire wrote: > "Mathias Panzenboeck" <[EMAIL PROTECTED]> wrote in message > news:[EMAIL PROTECTED] > >I wrote a few functions which IMHO are missing in python(s itertools). > > > > You can download them here: > > http://sourceforge.net/project/showfiles.php?group_id=165721&package_id=212104 > > > > A short description to all the functions: > > > Just a couple of questions: > > > iproduct(iterable, start=0) -> value > > Returns the product of the elements of a iterable > > times the value of parameter 'start'. When the > > iterable is empty, returns start. > > > Wouldn't 1 be a better default value for start?
I concur; start should default to 1. > > forall(predicate, iterable, default=True) -> bool > > Returns True, when for all elements x in iterable > > predicate(x) is True. When the iterable is empty, > > returns default. > > > > forany(predicate, iterable, default=False) -> bool > > Returns True, when for any element x in iterable > > predicate(x) is True. When the iterable is empty, > > returns default. > > > How are these different from all and any in Python 2.5? 1. These functions apply a predicate to the items. It's simple enough to do with any/all and a genexp, but by the same argument, it's simple enough to do imap and ifilter with a plain genexp. 2. They have default values. Default values for any and all don't make sense, and I don't think they make sense here, either. All of nothing is always True; any of nothing is always False. Carl Banks -- http://mail.python.org/mailman/listinfo/python-list