Parametric polymorphism: Difference between revisions

Content added Content deleted
(J draft)
Line 60:
<lang csharp>namespace RosettaCode {
class BinaryTree<T> {
public T value;
public BinaryTree<T> left;
public BinaryTree<T> right;
 
public void ReplaceAllBinaryTree(T value) {
this.value = value;
}
public BinaryTree<U> Map<U>(Func<T,U> f) {
BinaryTree<U> Tree = new BinaryTree<U>(f(this.value));
if (left != null) {
Tree.left = left.ReplaceAllMap(valuef);
}
if (right != null) {
Tree.right = right.ReplaceAllMap(valuef);
}
return Tree;
}
}
Line 81 ⟶ 86:
class Program {
static void Main(string[] args) {
BinaryTree<intU> treeb = new BinaryTree<int>(6);
b.left = new BinaryTree<int>(5);
 
treeb.ReplaceAllright = new BinaryTree<int>(57);
BinaryTree<U> b2 = b.Map(x => x * 10);
}
}