Parametric polymorphism: Difference between revisions

Content added Content deleted
Line 226: Line 226:
struct Tree
struct Tree
{
{
Type value;
Type value;
Tree* left;
Tree* left;
Tree* right;
Tree* right;
}
}


fn void Tree.replaceAll(Tree* a_tree, Type new_value)
fn void Tree.replaceAll(Tree* a_tree, Type new_value)
{
{
a_tree.value = new_value;
a_tree.value = new_value;
if (a_tree.left) a_tree.left.replaceAll(new_value);
if (a_tree.left) a_tree.left.replaceAll(new_value);
if (a_tree.right) a_tree.right.replaceAll(new_value);
if (a_tree.right) a_tree.right.replaceAll(new_value);
}
}
</lang>
</lang>
Line 243: Line 243:
<lang c3>define IntTree = tree<int>::Tree;
<lang c3>define IntTree = tree<int>::Tree;


func void test()
fn void test()
{
{
IntTree inttree;
IntTree inttree;