On Sunday 20 April 2003 10:18 am, Brett Cannon wrote: ... > I think part of the trouble here is the name. The word "sum" just > automatically causes one to think math. This leads to thinking of > multiplication, division, and subtraction. But Alex's proposed function > does more than a summation by special-casing the concatentation of > strings. Actually it does more than summation because, in Python, + does more than summation. E.g., my function needs absolutely no special-casing whatsoever to produce >>> sum([[1,2],[3,4],[5,6]]) [1, 2, 3, 4, 5, 6] I special-cased the "sum of strings" just for performance issues, nothing more! > Perhaps renaming it to something like "combine()" would help do away with > the worry of people wanting a complimentary version for multiplication > since it does more than just sum numbers; it also combines strings in a > very efficient manner. I mean we could extend this to all built-in types > where there is a reasonable operation for them (but this is jumping the > gun). sum already works on all types, built-in or not, for which + and operator.add work -- thus, 'combine' sounds too vague to me, and the natural way to "extend this" to any other type would be to have that type support + (by defining __add__ or in the equivalent C-coded way). > And as for the worry about this being a built-in, we do have divmod for > goodness sakes. I mean divmod() is nothing more than glorifying division > and remainder for the sake of clean code; ``divmod(3,2) == (3/2, 3%2)``. > This function serves the same purpose in the end; to allow for cleaner > code with some improved performance for a function that people use on a > regular enough basis to ask for it constantly on c.l.p . I think this is a very good point. The worries come from the fact that we already have many built-ins (44 functions at last count -- counting such things as exception classes doesn't seem sensible) -- but is it a good idea to exclude 'sum' because we have more exotic built-ins such as 'divmod', or semi-obsolete ones such as 'apply'? I've only seen Raymond objecting to 'sum' as a built-in (naming it 'add' might be just as fine, and having it accept the same argument patterns as max/min probably useful) -- though I may have missed other voices speaking to this issue -- so perhaps it's best if he clarifies his objection. Alex
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4