Rob MacAulay quoting M. Kowalczyk:

> > Classes are not the appropriate tool for modelling domains of a
> > sufficiently advanced algebra system.

> If I understand correctly, you propose a system where Domains are
> record types, whose fields are functions corresponding to
> operations in the Domain.

> Maple uses this technique. There is a package called "Gauss"
> which sets up domains in this manner. ...

> To be honest, I have always felt that this was a bit clumsy, and I
> was hoping that Haskell would provide a more elegant solution,
> though I am less sure of this now!


I thought that Gauss is more or less dead, because it integrated
very badly with the rest of Maple. The Waterloo team wanted to
introduce the domain/categories in a more clean way. 


Axiom and Magma of course use all that. But if you really want to
see some details, to look at the OO code full of dynamic bindings,
but trying to resolve things statically, and to see what is
considered as really needed by an active CA community, you should
look at MuPAD, which is free (there is a Windows commercial
bellsAndWhistles version also) and decently documented. There are
there things I love, and things I personally hate, such as lack
of lexical closures, which makes it difficult to construct our
favourite HO functional algorithms (they might have changed
something in the last version, but I doubt it. I tried once
to implement some of my lazy numerical stuff in MuPAD, and I had
very severe difficulties).

A "Category" is a *property* of a data structure, not its clas-
sification to a class (domain). I would compare Domains here to
classes in Python. Haskell is worlds apart. It might provide for
a more elegant solution, and although I share with Rob the
doubts about it, I am sure that some offspring of Haskell might
make the life of mathematically oriented people more sweet.

[Unless - which is 3.1416 times more probable - the conceptors
of popular CA systems recognize finally the importance of HO
functional techniques, of laziness, etc., and most people trying
to use Haskell for mathematically oriented manipulations will
leave this ship and move elsewhere.]


Jerzy Karczmarczuk
Caen, France

Reply via email to