Aufzählen k-elementiger Teilmengen
Die Prozedur ListKSubsets(n,k) erzeugt alle k-elementigen Teilmengen der Menge {1,2,...,n}.
Verwendet werden hierbei die beiden Maplebefehle
op(y): entfernt die äußeren eckigen Klammer einer Liste und
map(f, y): wendet die Funktion f auf jedes Element der Liste y an.
> augment := (y,m) -> [op(y),m];
> ListKSubsets := proc(n,k)
> if n<0 or k<0 or k>n then RETURN([])
> elif n=0 or k=0 then RETURN([[]])
> else RETURN([op(ListKSubsets(n-1,k)), op(map(augment, ListKSubsets(n-1,k-1),n))]);
> fi;
> end;
> ListKSubsets(5,3);