alguien me puede pasar la solución del problema 4 del parcial:
Dada una lista x con todos sus elementos distintos, devolver la lista de partes, es decir, la lista de todas las listas incluidas en x, cada una con sus elementos en el mismo orden qn que aparecen en x.
Hola, aca va una forma, creeeeeeo, que esta bien..
lo importante aca era darse cuenta que es mucho mas facil describir las propiedades del resultado y no matarse tratando de hacer un acum dentro de otro acum o algo asi
problema partes (li : [T]) = ls : [[T]]
requiere distintos: (\(\forall\) a <-- [0..|li|), b <-- [0..|li|), a \(\neq\) b) li[a]\(\neq\) li[b]
asegura NumeroDePartes: |ls| == pot(2,|li|)
asegura PartesDistintas: (\(\forall\) e <-- [0..|ls|), d <-- [0..|ls|), e \(\neq\) d) ls[e] \(\neq\) ls [d]
asegura Pertenencia: (\(\forall\) e <-- ls)(V a <-- e) a \(\in\) li
asegura OrdenCorrecto: (\(\forall\) e <-- ls)~(\(\exists\) a <-- e, b <-- e, a \(\neq\) b y orden(a,e) > orden(b,e)) orden (a,li) \(\leq\) orden (b,li)
aux orden (x : T, li : [T]) : Z = cab([i | i <-- [0,,|li|), li[ i ] == x)
Saludos!!, cualquier cosa avisame si no entendes algo
Edit: pase esas partes a TeX, espero no moleste. Nico? =)
Me parece que la parte del modulo esta mal, porque piden la lista de todas las sublistas que aparecen en la lista que me dan.
Por Ej:
[1,2,3]
[[],[1],[1,2],[1,2,3],[2],[2,3],[3]]
No se bien si la lista vacía cuenta como elemento, creeeeeeo que si.
El modulo resultante es de 7, lo que faltaría sería el elemento 3,1 o 1,3 pero no forman una sublista porque estan separados por elementos intermedios.
$$[l[i....j]\ $\mid$ \ i\leftarrow [0....\mid l \mid), j\leftarrow [i....\mid l \mid)]$$
Ese aux me genera todas las sublistas menos la vacía que despues se la puedo agregar a mano, diciendo:
asegura \(res\ ==\ [[\ ]]++{\tt subListaDeLista}(l)\)
El requiere que dieron, esta bien.
Firma
Hoy esta muerto y con él, cuanta memoria se apaga...