(original) (raw)
On Mon, Aug 11, 2014 at 8:19 PM, Nick Coghlan <ncoghlan@gmail.com> wrote:
Teaching users the difference between linear time operations and quadratic ones isn't about purity, it's about passing along a fundamental principle of algorithm scalability.
I would understand if this was done in reduce(operator.add, ..) which indeed spells out the choice of an algorithm, but why sum() should be O(N) for numbers and O(N\*\*2) for containers? Would a python implementation that, for example, optimizes away 0's in sum(list\_of\_numbers) be non-compliant with some fundamental principle?