* certain difficulties transforming Tuples
I assume your talking about the issues raised in the article I mentioned
above?

I just checked.  Although I'm still not completely sure, but I think the
problem we have is that Tuples are *not quite* first class citizens, quite
contrary to the recommendation of PollThompson.

Suppose you want a constructor like

M(T: Tuple Cat): MCat(T) == add {...}

for some given category Cat (For simplicity, lets say

  define Cat: Category == with {=:(%,%)->Boolean}

. The question now is how do I define MCat and the corresponding add {...} in such a way that I am able to generate an element of M in a simple form.

Basically, I want to say...

import from Integer, String, Boolean;
import from M(Integer, String);
import from M(String, String, Boolean);
a := m(4,"a");
b := m("x", "y", true);

Do you have an idea how to define the function m generically?

Also I would probably like to have

s: String := b.2;
i: Integer := a.1;
q: Boolean := b.3;

Try to define this apply function.

Important, I want to have as much type safety as possible, i.e. If I would have written

c := m(1, "x", false);

the compiler should already shout that the type of the first argument doesn't fit.

Good luck.

Ralf


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

Reply via email to