Aquest exercici explora la generació exhaustiva de subconjunts.
Observació
Per tal que no importi l’ordre en que genereu la solució, els jocs de proves ordenen el resultat. Per a això, importeu la funció sort del mòdul Data.List encara que no la feu servir.
Puntuació
Cada funció puntua 25 punts.
Input
let msort xs = sort (map sort xs) sort $ zerosNones1 3 sort $ zerosNones2 5 2 msort $ subsets1 ["hola", "adeu", "hi"] msort $ subsets1 [1..2] msort $ subsets2 2 ["hola", "adeu", "hi", "hello", "bye"]
Output
[[0,0,0],[0,0,1],[0,1,0],[0,1,1],[1,0,0],[1,0,1],[1,1,0],[1,1,1]] [[0,0,0,1,1],[0,0,1,0,1],[0,0,1,1,0],[0,1,0,0,1],[0,1,0,1,0],[0,1,1,0,0],[1,0,0,0,1],[1,0,0,1,0],[1,0,1,0,0],[1,1,0,0,0]] [[],["adeu"],["adeu","hi"],["adeu","hi","hola"],["adeu","hola"],["hi"],["hi","hola"],["hola"]] [[],[1],[1,2],[2]] [["adeu","bye"],["adeu","hello"],["adeu","hi"],["adeu","hola"],["bye","hello"],["bye","hi"],["bye","hola"],["hello","hi"],["hello","hola"],["hi","hola"]]