【问题标题】:Tree Method - Any, Iterable树方法 - 任何,可迭代
【发布时间】:2018-08-19 20:05:49
【问题描述】:

树方法在 Perl6 中有什么作用?

来自Perl6 Documentation

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

但是,“可迭代”文档中并没有对树方法的描述。

我试过了:

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

【问题讨论】:

    标签: tree iterable raku


    【解决方案1】:
    $ 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,两者如何反转第 2 级,以及如何保持第 1 级不变。

    如果您需要示例,可以随时查看 perl6 烘焙测试套件,地址为 https://github.com/perl6/roast

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

    【讨论】:

    • 想法是树方法将函数应用于可迭代数据类型中的某个深度的项目吗?
    猜你喜欢
    • 2014-05-10
    • 1970-01-01
    • 1970-01-01
    • 2022-10-23
    • 2014-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多