Números binarios en haskell

propuesto por GregoGC

1. Convertir un número decimal a binario. 2. Convertir un número binario a decimal. 3. Hacer la suma de dos números en binario.

Enunciado
Se ha definido el tipo de datos Binario que trabaja únicamente con ceros y unos:

data Binario = Cero | Uno deriving (Show, Eq)

Con esto queremos hacer lo siguiente:

1. Definir la función aBinarioL que dado un número en formato decimal convirta ese número de formato decimal a formato binario y como lista de ceros y unos, en una lista del tipo de datos Binario.

aBinarioL 6 -> [Uno, Uno, Cero]
aBinarioL 9 -> [Uno, Cero, Cero, Uno]

2. Definir la función aDecimal dada una lista que representa un número codificado en binario y representado con el tipo de datos Binario, lo convierta de formato Binario a un número decimal utilizando listas por comprensión.

aDecimal [Uno, Uno, Cero] -> 6
aDecimal [Uno, Cero, Cero, Uno] -> 9

3. Definir la función SumaB tal que dados dos números en formato decimal los convierta en tipo de datos binario, calcule la suma binaria de ambos y devuelva el resultado en una lista de datos de tipo Binario, de derecha a izquierda teniendo en cuenta cómo se suman dos números binarios (no son válidas soluciones que no conviertan los números a binario antes de hacer la suma, que utilicen la suma de haskell o que no realicen la suma de forma binaria según se indica)

SumaB 2 1 -> [Uno, Uno]
SumaB 10 2 -> [Uno, Uno, Cero, Cero]

Ver todo el enunciado

Preguntas sobre el desafío

¿Tienes dudas sobre el desafío? plantéala aquí

Plantea tu pregunta

3 Soluciones

Dar mi solución

Dar mi solución