On 01/03/2014 00:40, Ned Batchelder wrote:
On 2/28/14 6:36 PM, Mark H. Harris wrote:
On Friday, February 28, 2014 3:03:25 PM UTC-6, Marko Rauhamaa wrote:

Marko

    ...  and between me and you, here is a snip from dmath.py from the
atan(x) function:

     if (n**2 < D(1)):
         a = __atan__(n)
     elif (n == D(1)):
         a = gpi/4
     elif (n == D(-1)):
         a = -(gpi/4)
     elif (n < D(-1)):
         a = __atan__Lt_neg1__(n)
     else:
         a = __atan__Gt_1__(n)

    This if--elif--else  is not only ugly, its just not readable
either, and besides that, its not elegant, nor is it humanly
helpful...   its does work though, and its absolutely necessary.   ugh.

    First, its not immediately clear what it does. Well, there isn't
just one atan(x) routine,  there are at least four of them, depending
on whether you're a purist, and they must be selected.

    Second, because of the strict intent ideology of python in the
first place, I can't indent this code to make it more readable without
breaking python's syntax.

    Third, this is a VERY simple if elif block.  More complex ones are
much worse... for human reading that is...

      I know its a pain in the neck, but python does need a switch
statement.   Is it a stubborn question?  I don't really think that
almost every modern computer language has a switch block because of
some C paradigm. I think its because most coders find them useful, at
least readable, and therefore essential.

I don't understand: you show an if/elif chain that cannot be expressed
as a switch statement (because it uses < ), and then conclude that
Python needs a switch statement?  That doesn't make any sense.


What a sneaky trick, trying to confuse people here with mere *FACTS* :)

--
My fellow Pythonistas, ask not what our language can do for you, ask what you can do for our language.

Mark Lawrence

---
This email is free from viruses and malware because avast! Antivirus protection 
is active.
http://www.avast.com


--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to