Auto evaluacion Definiciones

Auto evaluacion Definiciones

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

Buenas, no entiendo la solucion de esta pregunta



Al correr en el ghci [ 'b' : [ 'd' ]] me retorna [ "bd" ] y no lo que se pretende en e ['a','b','c','d','e'].
Por que pasa esto y por que es correcto?

Gracias

En respuesta a Rodrigo Alain De La Vega Rodriguez

Re: Auto evaluacion Definiciones

de Alberto Pardo -
Hola,

Dos cosas.

Por un lado, que la lista ('b' : ['d']) la muestra como "bd" es debido a que en Haskell String está definido como [Char] y el show al ver una lista de chars la interpreta como string. El intérprete ghci al mostrar los resultados usa el show del tipo corrspondiente.

Por otro lado, el problema con la definición
e (_:xs) = head xs : o (tail xs)
es que asume que la lista xs es no vacía, pero puede serlo; ese caso se llega si aplicamos e a una lista con un número impar de elementos, como ser (e ['a']) o mismo (e ['a','b','c','d','e']).

Saludos,
Alberto.