树方法 - 任意,可迭代

4

Raku 中的 tree 方法是什么?

来自 Raku 文档

如果类未定义或不可迭代,则返回该类,如果是 Iterable,则返回应用元素的 tree 方法的结果。

然而,在“可迭代”文档中没有 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”类型。

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)

请注意,第二个例子只有第三层级应用了“sum”函数,两个例子都将第二层级反转,并且两个例子都保留了第一层级的内容。
如果需要例子,您可以随时查看perl6 roast测试套件,链接为:https://github.com/Raku/roast

https://github.com/Raku/roast/blob/ad9f949e2b479b5800c3e6315f979ded595a09fd/S02-lists/tree.t


这个想法是树方法会将某个可迭代数据类型中特定深度的项目应用于一个函数吗? - user6189164

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接