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
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.
}
if (right != null) {
Tree.right = right.
}
return Tree;
}
}
Line 81 ⟶ 86:
class Program {
static void Main(string[] args) {
BinaryTree<
b.left = new BinaryTree<int>(5);
BinaryTree<U> b2 = b.Map(x => x * 10);
}
}
|