[Python-ideas] Why operators are useful
Rémi Lapeyre
remi.lapeyre at henki.fr
Sat Mar 16 08:57:09 EDT 2019
Le 16 mars 2019 à 10:02:31, Greg Ewing
(greg.ewing at canterbury.ac.nz(mailto:greg.ewing at canterbury.ac.nz)) a
écrit:
> Rémi Lapeyre wrote:
> > I think this omit a very important property of
> > mathematic equations thought, maths is a very strongly typed language
> > which can be a significant improvement for readability.
>
> Python is very strongly typed too, so I don't really see how
> maths is different.
Sorry, this should have read « maths is a statically typed language ».
For example, in Python I can write:
def inverse(x):
return x ** (-1)
But this would never be accepted in maths, I should say one of
R -> R
f: x -> x ** (-1)
R+* -> R
f: x -> x ** (-1)
[1; +oo[ -> R
f: x -> x ** (-1)
GLn(K) -> GLn(K)
f: x -> x ** (-1)
And in all those examples, ** would have meant something very
different and the resulting objects f are very different.
For example, the third one is Lipschitz continuous but not the
first. On the other hand, I know nothing regarding the inverse
Function in Python.
Knowing nothing about `inverse` means that every time I use it
i must determine what it means in the given context.
> > For example, a
> > mathematician working within the space of linear maps over a vector
> > space will easily recognize the meaning of every symbol in:
> >
> > f(a * x + y) = a * f(x) + f(y)
>
> Yes, but he has to remember what types are associated with
> the variables -- nothing at their point of use indicates that.
> Likewise, the reader of a Python program has to remember what
> type of object each name is expected to be bound to. If he
> can remember that, he will know what all the operators do.
The overhead to track the associated type for a given name in maths
is far lower since it is a functional language. In maths, I can just
make a mental note of it and be done with it; in Python, you can
never be sure the type of the binded object did not change unexpectedly.
> --
> Greg
> _______________________________________________
> Python-ideas mailing list
> Python-ideas at python.org
> https://mail.python.org/mailman/listinfo/python-ideas
> Code of Conduct: http://python.org/psf/codeofconduct/
More information about the Python-ideas
mailing list