Parcial 2017 - Ejercicio 10 parte c

Parcial 2017 - Ejercicio 10 parte c

de Sandra Paganini Fajardo -
Número de respuestas: 2

Hola a todos.. 

En el resultado correcto de la parte c de este ejercicio pone diverge. 

A mi me dio (0,1) y lo comprobe en haskell. 

*Main> (head$zip (recorreL genera) (recorre genera))

(0,1)


En que me estoy equivocando? 

gracias, slds

sandra 



En respuesta a Sandra Paganini Fajardo

Re: Parcial 2017 - Ejercicio 10 parte c

de Marcos Viera - InCo -

Hola, la expresión que ponés es la de la parte f, no?

La idea de esa expresión es ir armando una lista de pares (con el zip) con los resultados de (recorreL genera) en el primer componente y los de (recorre genera) en el segundo.

El problema es que (recorre genera) nunca llega a retornar nada, porque el árbol es infinito por izquierda y recorre siempre entraría en la llamada recursiva 'recorre l' sin llegar nunca a un caso base. 


recorre   (Nodo l x r)  = recorre l ++ [x] ++ recorre r

recorre   Vacio         = []


Por las dudas, lo probé y diverge :-)