Gabriel Dos Reis <[EMAIL PROTECTED]> writes:

> | What are "algebraic types"?
> 
> Ralf and you have been doing it in your project, I think.  Basically,
> an algebraic type is any data type on can construct with sum and
> products.  Examples,
> 
>     BinaryTree t = Nil | Node t (BinaryTree t) (BinaryTree t)
> 
> 
> Data of algebraic type are constructed with the constructors, and they
> are deconstructed through pattern matching. 

Well, in fact I need more than that, namely mutually dependent recursively
defined types. I.e., I want to be able to say

A: SomeCat; B: SomeCat;
A == f(A,B) add;
B == g(A,B) add;

as currently possible in Aldor, or, even

l := [SomeDomain, SomeDomain];
l.1 := f(l) add;
l.2 := g(l) add;

(the latter is currently not allowed in Aldor, but it happens to work...)

But I guess, you know that.

Martin



_______________________________________________
Axiom-developer mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/axiom-developer

Reply via email to