[Python-Dev] [slighly OT] Native speakers and hurting brains
Boris Borcic
bborcic at gmail.com
Tue Jul 11 14:43:52 CEST 2006
Greg Ewing wrote:
> Boris Borcic wrote:
>
>> I believe that in this case native linguistic intuition made the decision...
>
> The reason has nothing to do with language. Guido didn't
> want sum() to become an attractive nuisance by *appearing*
> to be an obvious way of joining a list of strings, while
> actually being a very inefficient way of doing that.
sum() *is* exactly an attractive nuisance by *appearing* to be an obvious way of
chaining strings in a list (without actually being one).
> Considerable effort was put into trying to make sum()
> smart enough to detect when you were using it on a
> list of strings and do "".join behind the scenes, but
> Guido decided in the end that it wasn't worth the
> trouble, given that he only ever intended sum() to
> be used on numbers in the first place.
That's not quite conform to the record. According to py-dev archives it happened
on April 2003 with a thread "Fwd: summing a bunch of numbers (or "whatevers")"
initiated by Alex Martelli where he actually proposed a working implementation
of sum() in C, that did short-circuit the case of strings to ''.join. That was
Sat 19th of April.
Debate ensued, and by late Sunday 20th around 11PM;, the honorable author of the
Zen of Python had killed that use case for sum() with "sum(sequence_of_strings)
hurts my brain". (Hello Tim, so what about < sqrt(':(') > ?)
Guido's first intervention in the thread was the next morning, and the two very
first lines of his intervention where :
"OK, let me summarize and pronounce.
sum(sequence_of_strings) is out...."
I admit that there is a step of arguable interpretation from these recorded
facts to my diagnostic, but the latter is compatible with the facts. Your
version otoh looks more robust in the role of eg creation myth.
Best Regards, Boris Borcic
--
"assert 304 in 340343, P424D15E_M15M47CH"
More information about the Python-Dev
mailing list