I am glad you are interested Dan. I would give Haskell a clean start, particularly in the light of what Johan has just said. Calling external CAS engine (Matlab style) makes little sense since tensor work is done in external packages and Haskell has its own interesting libraries that could be turned into engine, e. g. Algebraic Domain Constructor (DoCon) based on functors, which guarantee higher level of needed abstraction than any other CAS but it unfortunately does not handle non-commutative algebra. If somebody extends this I will eat my previous mail:-)
Calculating the components of a tensor is a straightforward process (this can be done with CAS) but manipulation of indicial tensor formulas is a different animal. Using symbolic indices on tensors simplifies tensor expressions, so for example A_{ij}S^{ij}-0, if (A) S are symmetric or anti-symmetric allowing for more complicated properties like linear and non-linear identities. Then preserving the indices in tensor symbolic form gives you - to use Haskell jargon - mach more expressive power. Such as typing an action functional to find the corresponding equations of motion. With indexed objects as symbolic indices you can generate component-wise calculations from symbolic input. Numerical indices will not allow for this. I do not intend to bore anybody with differential geometry but as I was pushed that far let me add that if Haskell was made to handle Riemannian geometry it could be useful in next generation machine learning research where logic, probability and geometry meet. Regards, -Andrzej _______________________________________________ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell