The problem is that if one implements it, there has to be a substitution at the expense of loosing a default operator. In scientific libraries this isn't great as all existing operators tend to be used.
What I would alternatively propose is to introduce a couple of (meaningless operators), so that library developers can make use of them as they wish. What characters aren't used? “$, ?, `” (or are they?).
A $pow$ 3 - meh
A ?pow? 3 - looks ok. The question mark is appropriately marking ambiguous/implementation dependent meaning.
A `pow` 3 - looks good
A @@ 3 - doesn’t look too great...
A.pow(3) - nice
If I was lacking just one operator (especially in such case where different algorithms can be used), A.pow(-1, inv_type=‘LU') feels most convenient given flexibility of arguments.
If I was to go heavy on operators in matrix algebra or defining some sort of new syntax, then @@ wouldn’t help anyways - it’s just one (and fairly awful looking).
Python has the "star" ("*") operator for multiplication. In the context of collections it is supposed to mean element-wise multiplication. Its associated operator is __mul__. It also has the double star ("**") operator for exponentiation, which is repeated multiplication. Its associated operator is __exp__.
In addition to that Python has the "at" ("@") operator for multiplication. In the context of collections it should mean linear product, like matrix times a matrix, or matrix times vector. Its associated method is __matmul__.
For completeness we should now have the exponentiation operator meaning repeated application of the "at" operator. Its method could me __matexp__.
_______________________________________________
Python-ideas mailing list --
python-ideas@python.orgTo unsubscribe send an email to
python-ideas-leave@python.orghttps://mail.python.org/mailman3/lists/python-ideas.python.org/Message archived at https://mail.python.org/archives/list/python-ideas@python.org/message/AS3F4V4PCR4EUMYGC7HEECQHAFUVNU2M/
Code of Conduct: http://python.org/psf/codeofconduct/