Perl 6 中列表的所有子集

All subsets of a list in Perl 6

我想知道(记住 Perl 6 拥有您想要的一切),是否有一些内置工具可以帮助生成列表的所有非空子集(顺序无关紧要)。

例如,我有一个列表:

my @a = 1, 2, 3;

我需要一个函数 f 以便 f(@a) 将产生:

((1), (2), (3), (1, 2), (1, 3), (2, 3), (1, 2, 3))
@a.combinations(1..*)

将 return 您正在寻找的 Seq。请注意,如果没有参数,将生成一个空列表作为第一个元素。