On Tue, 18 Oct 2005 13:42:21 -0700, Robert Kern wrote: > Steven D'Aprano wrote: >> On Mon, 17 Oct 2005 22:23:43 -0700, David Pokorny wrote: >> >>>Hi, >>> >>>Just wondering if anyone has considered macros for Python. I have one >>>good use case. In "R", the statistical programming language, you can >>>multiply matrices with A %*% B (A*B corresponds to pointwise >>>multiplication). In Python, I have to type >>> >>>import Numeric >>>matrixmultiply(A,B) >>> >>>which makes my code almost unreadable. >> >> Yes, I see what you mean, it is pretty confusing. It almost looks like >> a function that multiplies two matrices and returns the result. >> >> Have you tried coming up with better names for your arguments than A and >> B? Many people find that using self-documenting variable names helps make >> code easier to understand. > > Well, to be fair, his example was trivial. When you have more > complicated matrix expressions with transposes and conjugations and more > matrixmultiplies than you can shake a stick at, it gets ugly pretty fast. > > F = dot(dot(Z, F),transpose(conjugate(Z)))
No uglier than y = sin(poly(sqrt(x))) And of course it is allowed to do this: F = dot(Z, F) Z = transpose(conjugate(Z)) F = dot(F, Z) Not everything has to be a one-liner, not even in mathematics. > versus > > from scipy import * > F = mat(F) > Z = mat(Z) > F = Z*F*Z.H It's a matter of taste. But calling it "almost unreadable" is an exaggeration. -- Steven. -- http://mail.python.org/mailman/listinfo/python-list