[Prueba 2017 - versión 1] [Ej 10]

Re: [Prueba 2017 - versión 1] [Ej 10]

de Martin Tadashi Calcagno Sato -
Número de respuestas: 0
Yo pensé lo mismo al principio, que generaAux primero llamaba a (l,n′) =generaAux(n+ 1), y se volvía a llamar recursivamente sin parar, pero en realidad (a mi parecer) primero se está creando el nodo con (Nodo l n r,n′′), donde l, r, y n'' son los llamados que indica el let (l sería fst generaAux(n+1), r sería fst generaAux(snd generaAux(n+1)),  y n'' sería igual que con el r, pero snd).

Entonces generaAux n se podría escribir así:

generaAux n =
       (Nodo (fst generaAux(n+1))    n    ( fst generaAux (snd generaAux(n+1)) ) ,snd generaAux (snd generaAux(n+1)) ) )

Ahora genera si te devuelve algo que lo podes aplicar a recorreL sin diverger.

Espero que se entienda (capas que le erre en alguno de los llamados del generaAux)