Self-referential tuples?

Timon Gehr via Digitalmars-d digitalmars-d at puremagic.com
Tue Jun 9 15:58:21 PDT 2015


On 06/09/2015 05:28 PM, Andrei Alexandrescu wrote:
> Following the use of This in Algebraic
> (https://github.com/D-Programming-Language/phobos/pull/3394), we can
> apply the same idea to Tuple, thus allowing one to create
> self-referential types with ease.
>
> Consider:
>
> // A singly-linked list is payload + pointer to list
> alias List(T) = Tuple!(T, This*);
>
> // A binary tree is payload + two children
> alias Tree(T) = Tuple!(T, This*, This*);
> // or
> alias Tree(T) = Tuple!(T, "payload", This*, "left", This*, "right");
>
> // A binary tree with payload only in leaves
> alias Tree2(T) = Algebraic!(T, Tuple!(This*, This*));
>
> Is there interest in this? Other application ideas to motivate the
> addition?
>
>
> Andrei

Well, the issue is with this kind of use case:

alias List(T)=Algebraic!(Tuple!(),Tuple!(T,This*));


More information about the Digitalmars-d mailing list