13 lines
352 B
Text
13 lines
352 B
Text
fcn partitions(args){
|
|
args=vm.arglist;
|
|
s:=(1).pump(args.sum(0),List); // (1,2,3,...)
|
|
fcn(s,args,p){
|
|
if(not args) return(T(T));
|
|
res:=List();
|
|
foreach c in (Utils.Helpers.pickNFrom(args[0],s)){
|
|
s0:=s.copy().removeEach(c);
|
|
foreach r in (self.fcn(s0,args[1,*])){ res.append(T(c).extend(r)) }
|
|
}
|
|
res
|
|
}(s,args)
|
|
}
|