相关疑难解决方法(0)

如何完全展平Perl 6列表(列表列表)...)

我想知道如何完全展平列表和包含它们的东西.除此之外,我想出了这个解决方案,它可以滑动具有多个元素的东西并将它们放回去,或者在滑动之后用一个元素取出它.

这与我如何"压扁"perl 6中的列表列表略有不同,这是完全平坦的,因为任务是重组.

但是,也许有更好的方法.

my @a  = 'a', ('b', 'c' );
my @b  = ('d',), 'e', 'f', @a;
my @c  = 'x', $( 'y', 'z' ), 'w';

my @ab = @a, @b, @c;
say "ab: ", @ab;

my @f = @ab;

@f = gather {
    while @f {
        @f[0].elems == 1 ??
            take @f.shift.Slip
                !!
            @f.unshift( @f.shift.Slip )
        }
    }

say "f: ", @f;
Run Code Online (Sandbox Code Playgroud)

这给出了:

ab: [[a (b c)] [(d) e f [a (b c)]] [x …
Run Code Online (Sandbox Code Playgroud)

list flatten perl6 raku

17
推荐指数
2
解决办法
560
查看次数

如何"压缩"perl 6中的列表列表?

假设我想要a,b和c中的2个字母的所有排列.

我可以:

my @perm = <a b c>.combinations(2)».permutations;
say @perm;
# [((a b) (b a)) ((a c) (c a)) ((b c) (c b))]
Run Code Online (Sandbox Code Playgroud)

这很接近,但不完全是我需要的.我如何"扁平化"这样以便得到:

# [(a b) (b a) (a c) (c a) (b c) (c b)]
Run Code Online (Sandbox Code Playgroud)

perl6 raku

12
推荐指数
4
解决办法
364
查看次数

标签 统计

perl6 ×2

raku ×2

flatten ×1

list ×1