[Prueba 2022 - Ej 3]

[Prueba 2022 - Ej 3]

de Enzo Valentin Lombardo Caridad -
Número de respuestas: 1



La solución dice que la correcta es la b, pero no estoy logrando entender por qué la a no es correcta.

En la primera ejecución f k = id 1 = 1
1 == 1
1 + moo id (id 1) [1,1,1,1,1,1,1,1,1]
1 + 1 + moo id (id 1) [1,1,1,1,1,1,1,1]
... etc
1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + moo id (id 1) []
1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 = 10

Qué es lo que no estoy tomando en cuenta acá?

En respuesta a Enzo Valentin Lombardo Caridad

Re: [Prueba 2022 - Ej 3]

de Alberto Pardo -
Hola Enzo,

La cuestión es que la llamada recusiva de moo se hace sobre (tail xs) y no sobre xs. Eso hace que se vaya saltando en la lista de dos en dos. Por eso la llamada a moo id 1 (take 10 (repeat 1)) da 5 y no 10.

Saludos,
Alberto.