Visualize a tree: Difference between revisions
Rename Perl 6 -> Raku, alphabetize, minor clean-up
Thundergnat (talk | contribs) (Rename Perl 6 -> Raku, alphabetize, minor clean-up) |
|||
Line 886:
Displays a tree of the current directory.
<lang batch file>@tree %cd%</lang>
=={{header|BBC BASIC}}==
Line 1,195 ⟶ 1,194:
| `-- (null)
`-- (null)</pre>
=={{header|Elena}}==
ELENA 5.0 :
Line 2,741:
│ └─D3
└─C3</pre>
=={{header|Perl 6}}==▼
<lang perl6>sub visualize-tree($tree, &label, &children,▼
:$indent = '',▼
:@mid = ('├─', '│ '),▼
:@end = ('└─', ' '),▼
) {▼
sub visit($node, *@pre) {▼
| gather {▼
take @pre[0] ~ label($node);▼
my @children := children($node);▼
my $end = @children.end;▼
for @children.kv -> $_, $child {▼
when $end { take visit($child, (@pre[1] X~ @end)) }▼
default { take visit($child, (@pre[1] X~ @mid)) }▼
}▼
}▼
}▼
visit($tree, $indent xx 2);▼
}▼
# example tree built up of pairs▼
my $tree = root=>[a=>[a1=>[a11=>[]]],b=>[b1=>[b11=>[]],b2=>[],b3=>[]]];▼
.map({.join("\n")}).join("\n").say for visualize-tree($tree, *.key, *.value.list);</lang>▼
{{out}}▼
<pre>root▼
├─a▼
│ └─a1▼
│ └─a11▼
└─b▼
├─b1▼
│ └─b11▼
├─b2▼
└─b3</pre>▼
=={{header|Phix}}==
Line 2,913 ⟶ 2,876:
send(D, open).
</lang>
[[File:display_tree.png|900px]]
=={{header|Python}}==
===Library module===
Line 3,611 ⟶ 3,575:
\-13
</pre>
(formerly Perl 6)
▲<lang perl6>sub visualize-tree($tree, &label, &children,
▲ :$indent = '',
▲ :@mid = ('├─', '│ '),
▲ :@end = ('└─', ' '),
▲) {
▲ sub visit($node, *@pre) {
▲ | gather {
▲ take @pre[0] ~ label($node);
▲ my @children := children($node);
▲ my $end = @children.end;
▲ for @children.kv -> $_, $child {
▲ when $end { take visit($child, (@pre[1] X~ @end)) }
▲ default { take visit($child, (@pre[1] X~ @mid)) }
▲ }
▲ }
▲ }
▲ visit($tree, $indent xx 2);
▲}
▲# example tree built up of pairs
▲my $tree = root=>[a=>[a1=>[a11=>[]]],b=>[b1=>[b11=>[]],b2=>[],b3=>[]]];
▲.map({.join("\n")}).join("\n").say for visualize-tree($tree, *.key, *.value.list);</lang>
▲{{out}}
▲<pre>root
▲├─a
▲│ └─a1
▲│ └─a11
▲└─b
▲ ├─b1
▲ │ └─b11
▲ ├─b2
▲ └─b3</pre>
=={{header|REXX}}==
|