RosettaCodeData/Task/Parametric-polymorphism/Icon/parametric-polymorphism.icon

11 lines
285 B
Plaintext

procedure main()
bTree := [1, [2, [4, [7]], [5]], [3, [6, [8], [9]]]]
mapTree(bTree, write)
bTree := [1, ["two", ["four", [7]], [5]], [3, ["six", ["eight"], [9]]]]
mapTree(bTree, write)
end
procedure mapTree(tree, f)
every f(\tree[1]) | mapTree(!tree[2:0], f)
end