树方法在Perl6中做了什么?
如果类未定义或者它不可迭代,则返回该类,返回 将
tree
方法应用于元素的结果(如果是)Iterable
。
但是,“iterable”文档中没有对tree方法的描述。
我试过了:
my $a = 1..4;
say $a.tree;
得到了:
$ perl6 test.pl6
(1 2 3 4)
与尝试相反:
my $a = 1..4;
say $a;
得到:
$ perl6 test.pl6
1..4
但是,我不确定区别是什么或意味着什么。
在类型列表下,在Perl6 docs网站上,似乎没有单独的“树”类型。
答案 0 :(得分:4)
$ perl6 -e 'say (1, (^5), ((4,5),), 6).tree(*.self, *.reverse)'
(1 (4 3 2 1 0) ((4 5)) 6)
$ perl6 -e 'say (1, (^5), ((4,5),), 6).tree(*.self, *.reverse, *.sum)'
(1 (4 3 2 1 0) (9) 6)
请注意,只有第二个示例的第3级应用了.sum
,两者的第二级如何反转,以及两者如何保持第一级保持不变。
如果您需要示例,可以随时查看https://github.com/perl6/roast
上的perl6烤架测试套件https://github.com/perl6/roast/blob/ad9f949e2b479b5800c3e6315f979ded595a09fd/S02-lists/tree.t