En Mon, 31 Aug 2009 05:43:07 -0300, Hendrik van Rooyen
<hend...@microcorp.co.za> escribió:
On Monday 31 August 2009 06:55:52 elsa wrote:
(Ultimately, I want to call myFunc(myList[0], 'booHoo'), myFunc(myList
[1], 'booHoo'), myFunc(myList[2], 'booHoo') etc. However, I might want
to call myFunc(myList[0], 'woo'), myFunc(myList[1], 'woo'), myFunc
(myList[2], 'woo') some other time).
Here is some heretical advice:
Do not use stuff like map and reduce unless they fit what you want to do
perfectly, and "JustWorks" the first time.
I think of that advice as "orthodox", not "heretical"! (functional guys
are minority here...)
You have a very clear idea of what you want to do, so why do you not just
simply write something to do it?
something like this (untested):
def woofer(thefunc,thelist,thething):
theanswers = []
for x in thelist:
theanswers.append(thefunc(x,thething))
return theanswers
And the advantage is that you do not have to remember what map does...
This block:
theanswers = []
for x in thelist:
theanswers.append(thefunc(x,thething))
is formally the same as this one:
theanswers = [thefunc(x,thething) for x in thelist]
but the list comprehension is faster. So the function becomes:
def woofer(thefunc,thelist,thething):
return [thefunc(x,thething) for x in thelist]
and may be inlined (it's usually easier to read).
*ducks away from the inevitable flames*
*fights back to back with you against heretics*
--
Gabriel Genellina
--
http://mail.python.org/mailman/listinfo/python-list