Parametric polymorphism: Difference between revisions

(→‎{{header|REXX}}: added the REXX language. -- ~~~~)
Line 472:
| Node (x,l,r) -> Node (f x, map_tree f l, map_tree f r)</lang>
=={{header|Perl 6}}==
{{incorrect|Does not work with latest rakudo (rakudo e9e99b)}}
<lang perl6>role BinaryTree[::T] {
has T $!.value;
has BinaryTree[T] $.left;
has BinaryTree[T] $.right;
Line 480 ⟶ 479:
method replace-all(T $value) {
$!value = $value;
$.!left.?replace-all($value) if $!left.defined;
$.!right.?replace-all($value) if $!right.defined;
}
}
Line 493 ⟶ 492:
$it.replace-all(42);
say $it.perl;</lang>
{{out}}
<pre>IntTree.new(value => 42, left => IntTree.new(value => 42, left => BinaryTree[T], right => BinaryTree[T]), right => IntTree.new(value => 42, left => BinaryTree[T], right => BinaryTree[T]))</pre>
 
=={{header|PicoLisp}}==
Anonymous user