Auto evaluación - Tipos Algebraicos Preg 7

Auto evaluación - Tipos Algebraicos Preg 7

de Rodrigo Alain De La Vega Rodriguez -
Número de respuestas: 1

Buenas! Me pueden explicar por que no queda en loop infinito mif al operar sobre una lista de largo infinito?
Mi problema no fue con mif' sino que pensé que al usar una lista de largo infinito en mif, este proceso nunca terminaría ya que para cada natural estaría construyendo una lista usando el árbol t.



Gracias!

En respuesta a Rodrigo Alain De La Vega Rodriguez

Re: Auto evaluación - Tipos Algebraicos Preg 7

de Luis Sierra -
hola,

observa que los árboles de los que hablamos son binarios, aún
cuando puedan tener alguna rama de largo infinito. es decir,
cada nodo interior tiene exactamente dos hijos inmediatos,
sin importar si tiene infinitos descendientes o no. luego, la
cantidad de hojas que pueden encontrarse a profundidad p están
acotadas por 2^p.

supongamos que el árbol t tiene un único nodo (Leaf 1) a profundidad 10.
tenemos que mif' t 10 = [1], y que mif' t k = [] si k  10. el
dropwhile descartará los primeros 10 resultados (porque son la lista vacía),
y devolverá [1]:xs. el head toma [1], y descarta xs. y con eso,
descarta todas las infinitas listas vacías que se computarían, si no
tuviéramos lazy evaluation.

el proceso termina no porque el árbol sea finito (que no tiene por qué serlo)
sino porque head se contenta con unn fragmento finito de ese cómputo.

cualqueir cosa reconaulta

luisl.