On Sun, 16 Aug 2009 08:30:54 +0200, Emmanuel Surleau wrote:

[...]
>> I will also observe that if you were to stop programming whatever
>> language you are more familiar with in Python, and start programming
>> Python in Python, you'll have an easier time of it.
> 
> I don't see what's particularly un-Pythonic with this code. Not using
> xrange() is a mistake, certainly, but it remains clear, easily
> understandable code which correctly demonstrates the naive algorithm for
> detecting whether n is a prime. It doesn't call for condescension

It's a particular unfair criticism because the critic (Ethan Furman) 
appears to have made a knee-jerk reaction. The "some language in Python" 
behaviour he's reacting to is the common idiom:

for i in range(len(seq)):
    do_something_with(seq[i])


instead of the "Python in Python" idiom:

for obj in seq:
    do_something_with(obj)


That's a reasonable criticism, but *not in the case*. Ethan appears to 
have made the knee-jerk reaction "for i in range() is Bad" without 
stopping to think about what this specific piece of code is actually 
doing.

(Replace 'obj' with 'j', 'seq' with 'range(2, n)', and 
'do_something_with' with 'if (n % j) == 0: return False', and you have 
the exact same code pattern.)


-- 
Steven
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to