我想知道(记住Perl 6有你想要的一切),是否有一些内置的乐器可以帮助产生列表的所有非空子集(顺序无关紧要)。
例如,我有一个清单:
my @a = 1, 2, 3;
我需要一个函数f
,以便f(@a)
生成:
((1), (2), (3), (1, 2), (1, 3), (2, 3), (1, 2, 3))
答案 0 :(得分:13)
@a.combinations(1..*)
将返回您正在寻找的Seq
。请注意,如果没有参数,则会生成一个空列表作为第一个元素。