Parametric polymorphism: Difference between revisions

Add Mercury.
mNo edit summary
(Add Mercury.)
Line 535:
}
}</lang>
 
=={{header|Mercury}}==
<lang mercury>:- type tree(A) ---> empty ; node(A, tree(A), tree(A)).
 
:- func map(func(A) = B, tree(A)) = tree(B).
 
map(_, empty) = empty.
map(F, node(A, Left, Right)) = node(F(A), map(F, Left), map(F, Right)).</lang>
 
=={{header|OCaml}}==
Anonymous user