RosettaCodeData/Task/Visualize-a-tree/11l/visualize-a-tree.11l

18 lines
581 B
Text
Raw Permalink Normal View History

2023-07-01 11:58:00 -04:00
T Node
String value
Node? left
Node? right
F (value, Node? left = N, Node? right = N)
.value = String(value)
.left = left
.right = right
F tree_indent() -> [String]
V tr = I .right != N {.right.tree_indent()} E [-- (null)]
R [--(.value)] [+] (I .left != N {.left.tree_indent()} E [-- (null)]).map(a -> |a)
[+] [ `tr[0]] + tr[1..].map(a -> a)
V tree = Node(1, Node(2, Node(4, Node(7)), Node(5)), Node(3, Node(6, Node(8), Node(9))))
print(tree.tree_indent().join("\n"))