syntax philosophy

Diez B. Roggisch deets_noospaam at web.de
Mon Nov 17 17:06:03 EST 2003


Hi,

> But I'm surprised at what you apparently have to go through to do
> something as common as counting the frequency of elements in a
> collection. For example, counting word frequency in a file in Perl
> means looping over all the words with the following line:
> 
> $histogram{$word}++;

Is this all thats needed - or is it actually something like this:

for $word in $words:
   $histogram{$word}++

(I've never used perl, so I blatantly mix python/perl syntax here - but I
think you'll understand anyway :))

> Since I'm trying to choose a good Swiss-Army-knife programming
> language, I'm wondering if this Python histogram technique is the sort
> of thing that bothers Pythonistas and gets cleaned up in subsequent
> versions because it violates Python's "philosophy" or whether, on the
> contrary, it's just the way Pythonistas like to do things and is a
> fair representation of what the community (or Guido) wants the
> language to be.

>From what I understand in your example, the power of perl for this example
comes from its untypedness - having an unbound variable histrogram and
accessing it with the {}-operator seems to implicitly make it an
dictionary. The same seems true for accessing an nonexistant key - it
doesn't provoke an exception, instead it returns nothing (is there a
keyword/constant for that?) - and obviously the plus-operator implicitly
casts that to a 0, so it can perform the addition.

You won't see this in python - as python is a strong-typed
programming-language. Thats not to be confused beeing a static typed
language - which it is not.

So, to answer your question - I think thats the way we like it :) After all,
you can always put your code into a histogram-function and call that -
which I don't find too much work ;-) 

Regards,

Diez




More information about the Python-list mailing list