Prueba 2018 - Ejercicio 2

Prueba 2018 - Ejercicio 2

de Eliana Rosselli Orrico -
Número de respuestas: 1

Buenas,

Me surgió una duda del ejercicio 2 del parcial 2018. 

Puede ser que la solución dada no funcione para el segundo ejemplo? Creo que devuelve ["hola", " ", " ", "que", "tal"], devolviendo dos listas vacías en vez de una sola. 

Gracias y saludos

En respuesta a Eliana Rosselli Orrico

Re: Prueba 2018 - Ejercicio 2

de Alberto Pardo -

Hola,

La definición que damos funciona bien (incluso la probé de nuevo por las dudas). 

Se usa la cabeza de la lista (y:ys), que denota el resultado de la llamada recursiva del foldr, para ir "acumulando" los caracteres que no son el caracter de corte (dado por el parámetro x). Al aparecer el caracter de corte se termina de acumular y se reinicializa la acumulación agregando una nueva lista vacía en la cabeza.

Al aparecer dos 'x' seguidas lo que produce es que aparezca una lista vacía (string vacío) en la lista de salida. La única posibilidad que aparezcan dos listas vacías seguidas es que coloquemos dos 'x' al principio del string de entrada. Por ejemplo, "xxhola" retorna ["","","hola"].

Saludos,
Alberto.