Pythonic way to sum n-th list element?

Alex Martelli aleax at aleax.it
Tue Apr 22 08:10:39 EDT 2003


Anna wrote:

> On Mon, 21 Apr 2003 16:02:27 +0000, Alex Martelli wrote:
> 
> 
>> As a bonus -- sum([]) now returns 0, while in my original design it
>> raised
>> a ValueError, just like e.g. max([]) does.  I thought raising an error
>> was best in the name of "errors shouldn't pass silently" and "in the face
>> of
>> ambiguity, refuse the temptation to guess".  But -- once we decree that
>> "sum is about numbers", there's no real ambiguity, so we can have the
>> little extra handiness of having sum([]) not be an error;-).
> 
> Hooray!
> 
> Sum() is a goodness! And sum([]) returns 0 is a great goodness.
> Thanks Alex.

You're welcome, but for "sum([]) returns 0" you should thank Guido
and Tim (it would raise a ValueError if I had implemented it my way;-).

[Which may help explain why I use and love a language architected by
Guido (with lots of input from Tim & many others, of course), rather
than one architected by my own self...;-)]

To be properly thankful that we're not using an Alex-designed
language, we might want to look at a simple example from the
domain-specific language BBL (Bridge-Bidding Language) which I
designed and implemented in the '80s [well before I met Python --
but I was quite familiar with Icon, REXX and other highly
readable very-high-level languages, so that's no excuse;-)].

Here's the BBL expression to determine whether the current hand
is suitable for a weak-notrump opener...:

& (                      # conditions for a weak-notrump opener
    s ( 1 g 4  3  3  3   # shape 4333 (any), or...
        2 g 4  4  3  2   #       4432 (any), or...
        3   3- 3- 3- 5   #       5332 w 5 clubs, or...
        4   3- 3- 5  3-  #       5332 w 5 diamonds;
      )
    < ( 11                    # moreover, a 12-14 range for
        \+ SHDC c( 4 3 2 1 0) # normal Milton-Work point-count
        15
      )
  )

There -- aren't you glad I don't do language design any more?-)


Alex





More information about the Python-list mailing list