Polinomio digital
Definir la función
polinomioDigital :: Int -> Polinomio Int
tal que (polinomioDigital n) es el polinomio cuyos coeficientes son los dígitos de n. Por ejemplo,
λ> polinomioDigital 5703 5*x^3 + 7*x^2 + 3
Nota: Este ejercicio debe realizarse usando únicamente las funciones de la librería [[https://hackage.haskell.org/package/I1M-0.2.2/docs/I1M-Pol.html][I1M.Pol]].
Soluciones
import I1M.Pol polinomioDigital :: Int -> Polinomio Int polinomioDigital = creaPolDensa . digitos -- (digitos n) es la lista de las dígitos de n. Por ejemplo, -- dígitos 142857 == [1,4,2,8,5,7] digitos :: Int -> [Int] digitos n = [read [x]| x <- show n] -- (creaPolDensa xs) es el polinomio cuya representación densa es -- xs. Por ejemplo, -- creaPolDensa [7,0,0,4,0,3] == 7*x^5 + 4*x^2 + 3 creaPolDensa :: (Num a, Eq a) => [a] -> Polinomio a creaPolDensa [] = polCero creaPolDensa (x:xs) = consPol (length xs) x (creaPolDensa xs)