[Python-Dev] Infix operators

Scott Dial scott+python-dev at scottdial.com
Fri Jul 25 04:46:24 CEST 2008

Greg Ewing wrote:
> Scott Dial wrote:
>> Perhaps I'm nobody, but I think this would be ridiculous. Matrices are
>> not native objects to the language.
> Why should that matter? We already have things like
> sum(), which operates on any sequence of numbers,
> without needing a special "array of numbers" data
> type.

I would argue that Python contains a "array of some_type" data type. 
That sum() performs a left-fold of __add__ on the array is completely 
independent of them being numbers. In all fact, they could be any type 
that supports __add__/__radd__ or even a mix of types. I do not believe 
"array of numbers" to be analogically equivalent to a "matrix of 
numbers". We have an "array of" type in Python, we do not have a "matrix 
of" type in Python. sum() is not an operator, it is a builtin; the 
suggestion was for there to be an operator, not a builtin. If you want 
to suggest there be a mmul() builtin, then perhaps there is a viable 
answer there, despite the lack of a "matrix of" type still.

> I don't see why one shouldn't be able to
> perform matrix multiplication on a plausible
> representation of a matrix using the existing
> built-in sequence types.

What is "a plausible representation of a matrix"? Is it a list of lists? 
Row-major (m[1][2]) or column-major (m[2][1])? Is it a dictionary of 
tuple'd indices (m[1,2])? Also, You went on to talk about wanting to 
using  numpy.array.

How does this not make it clear that there is not a case of TOOWTDI?


Scott Dial
scott at scottdial.com
scodial at cs.indiana.edu

More information about the Python-Dev mailing list