What is the relationship between "categories" in Axiom and the
mathematical notion of a category?

None. It is much better to think of categories in Axiom as multisorted algebras. Or to make it simpler, as a first approach you can think of it as universal algebras.

A semigroup in Axiom looks like

SemiGroup(): Category == with
    *: (%, %) -> %

Monoid: Category == SemiGroup with
    1: %

etc.

Programmatically, it is nothing else than the "interface" (Java-speak) of a domain, i.e. all the exported function names and their signatures (it's a bit oversimplified).

And I also would not too much draw a distinction between domains and packages. A package is a domain where the special symbol % (which stands for something like ThisDomain, old Axiom use $ instead of %) does not appear.

The type hierarchy in Axiom is actually:

elements
domains/packages
categories

Then there is a hierarchy of domains (only single inheritance is possible) and a hierarchy of categories (multiple inheritance allowed since there is no conflict, because a category (usually) contains no implementation of the signatures).

More details you find in Section 2.5 (p. 28) of http://axiom-portal.newsynthesis.org/refs/articles/doye-aldor-phd.pdf

Regards
Ralf


_______________________________________________
Axiom-developer mailing list
Axiom-developer@nongnu.org
http://lists.nongnu.org/mailman/listinfo/axiom-developer

Reply via email to