The first questions, when one programs with Axiom usually are:
What is my "domain of computation"?
(That is basically like with universal algebra. What is the carrier
set and what are the operations?)
How are the elements of the carrier set represented in terms of
already existing (library) types?
Yes, I think it boils down to second-order logic; in this case a
category of unevaluated expressions. As above; stored in the tree and
then brought front and center and evaluated in the tree accessing
environment.

As I said, it's no problem to implement that in Axiom. Actually, InputForm is basically such a domain.

Going back to the original question. It seems the questioner expects to
fabricate a template and later to create instances of it with varying
variables.

Although possible, that is a mindset that belongs to traditional (typeless) CAS. I would rather ask the questioner to state the actual problem instead of already giving a direction, i.e. using expression trees.

Sorry if I have taken the discussion drifting; I merely wanted to point
out the if/else can be a static data structure rather than in-line code.

Well, of course, that's possible. In fact, expression trees is something that almost all computer algebra systems rely upon. But Axiom is different.

Take for example 1+1. What is this evaluated?
Three out of infinitely many results.
1) 2
2) 0
3) 1+1

In Axiom (at least in SPAD) there would only be one possible result, since the compiler checks types. If it is clear what 1 and + means, it's also deterministic what the result is.

Ralf

_______________________________________________
Axiom-math mailing list
Axiom-math@nongnu.org
https://lists.nongnu.org/mailman/listinfo/axiom-math

Reply via email to