[Numpy-discussion] adding a .M attribute to the array.

John J. Lee jjl at pobox.com
Fri Mar 8 13:42:07 CST 2002

On Thu, 7 Mar 2002, Konrad Hinsen wrote:

> "eric" <eric at enthought.com> writes:
> > Matrix.Matrix objects. This attribute approach will work, but I
> > wonder if trying the "adding an operator to Python" approach one
> > more time would be worth while. At Python10 developer's day, Guido
> If you want to go the "operator way", the goal should rather be
> something like APL, with composite operators. Matrix multiplication

How about general operator - function equivalence, as explained here by
Alex Martelli?  The change is large in one sense, but it is conceptually
very simple:


>   2 div 3
> or
>   div(2,3)
> or
>   2 `div 3
> [Haskell-ishly syntax-sugar note: Haskell lets you
> use any 2-operand function as an infix operator by
> just enclosing its name in ``; in Py3K, I think a
> single leading ` would suffice -- far nicer than the
> silly current use of ` for the rare need of repr --
> and we might also, with pleasing symmetry, let any
> operator be used as a normal function a la
>     `+(a,b)
> i.e., the ` marker could lexically switch functions
> to operators and operators to functions, without
> needing to 'import operator' and recall what the
> operator-name for a given operator IS...!-).  The
> priority and associativity of these infinitely
> many "new operators" could be fixed ones...].

Since GvR seems to have given up the idea of 'Py3K' in favour of gradual
changes, perhaps this is a real possibility?


r = a.M * b.M

would then be written as

M = Numeric.matrixmultiply
r = a `M b

(Konrad also complains about Perl's nasty syntax.  This is frequently
complained about, but do you really think the syntax is the problem --
surely it's Perl's horribly complicated semantics that is the real issue?
The syntax is just inconvenient, in comparison at least.  Sorry, a bit


More information about the Numpy-discussion mailing list