TAD de los polinomios - Transformaciones entre polinomios y listas dispersas
Utilizando el tipo abstracto de datos de los polinomios definir las funciones
dispersaApolinomio :: (Num a, Eq a) => [(Int,a)] -> Polinomio a polinomioAdispersa :: (Num a, Eq a) => Polinomio a -> [(Int,a)]
tales que
-
dispersaApolinomio ps
es el polinomiocuya representación dispersa esps
. Por ejemplo,
λ> dispersaApolinomio [(6,9),(3,5),(1,4),(0,7)] 9*x^6 + 5*x^3 + 4*x + 7
-
polinomioAdispersa p
es la representación dispersa del polinomiop
. Por ejemplo,
λ> ejPol = consPol 6 9 (consPol 3 5 (consPol 1 4 (consPol 0 7 polCero))) λ> ejPol 9*x^6 + 5*x^3 + 4*x + 7 λ> polinomioAdispersa ejPol [(6,9),(3,5),(1,4),(0,7)]
Comprobar con QuickCheck que ambas funciones son inversas.