$10K coding deathmatch
Andrew McNabb
amcnabb at mcnabbs.org
Mon Nov 6 14:02:06 MST 2006
On Fri, Nov 03, 2006 at 11:32:38PM -0700, Dan Stovall wrote:
> On 11/3/06, Levi Pearson <levi at cold.org> wrote:
> >On Nov 3, 2006, at 4:30 PM, Andrew McNabb wrote:
> >
> >> I'm a big fan of Python, but this example made me want to cry.
> >>
> >> Grounds for first bullet:
> >>> value = reduce(lambda x,y: 0 < abs(x-y) <= len(nums) and y or
> >>> None, [int(item) for item in nums])
>
> Well, I had a few reasons for doing this. I have read that map,
> reduce, and list comprehesions are much faster and more efficient in
> python because they are implemented in the underlying C code, but for
> and while loops are not. I have been searching for the reference for
> this but I can't find it.
Do the reduce, but define the function above. Maybe even use some of
those newfangled conditionals like "if" and "else" statements in your
function.
> I also kind of wanted to show that python can be just as confusing and
> ridiculous as some of the perl examples. I basically was going for
> the best runtime, and smallest footprint as possible. Were I coding
> this to be maintained it would have been completely different.
Sure, you can make Python ugly. I admit it. But you have to go really
far out of your way. "I want an 'if', but I don't want it to be
readable. I wonder if I could do something goofy with the binary
operators." You know you're a bad person when you're doing it. :)
> >> Grounds for second bullet:
> >>> print '%smatch' % (not value and 'Not a ' or '')
>
> This is bad I admit. I don't know why I coded it up this way at all.
> I have no excuse, complete brain fart.
As long as you aren't proud of it. :)
> I agree, but I wanted to use the anonymous function since, again, it
> is supposed to be faster and more efficient.
How would an anonymous function be faster than a properly named one?
--
Andrew McNabb
http://www.mcnabbs.org/andrew/
PGP Fingerprint: 8A17 B57C 6879 1863 DE55 8012 AB4D 6098 8826 6868
More information about the PLUG
mailing list