树方法 - 任意,可迭代

问题描述 投票:0回答:1

树法在 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 文档网站上,似乎没有单独的“树”类型。

tree iterable raku
1个回答
4
投票
$ 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

© www.soinside.com 2019 - 2024. All rights reserved.