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