I1M2012: El TAD de los polinomios en Haskell (1)

En la clase de hoy de Informática de 1º del Grado en Matemáticas hemos estudiado el tipo abstracto de los polinomios y su implementación en Haskell.

Comenzamos la clase analizando las posibles representaciones de los polinomios y, como consecuencia, establecer la signatura y las propiedades del TAD de los polinomios.

A continuación, estudiamos tres prosibles representaciones del TAD de los polinomios: mediante tipos algebraicos, mediantes listas dispersas y mediante listas densas.

Finalmente, estudiamos la implementación de los polinomios como tipo algebraico y mediantes listas dispersas.

Las transparencias usadas en la clase son las páginas 1-29 del tema 21
Read More “I1M2012: El TAD de los polinomios en Haskell (1)”

El tipo abstracto de datos de los polinomios en Haskell

Como comenté en la entrada anterior, estoy elaborando los apuntes de los temas del curso Informática del Grado en Matemáticas (2010-11) no incluidos aún en el libro Temas de programación funcional (2010-11).

Uno de los temas en los que he estado trabajando últimamente es en el de los tipos abstractos de datos (TAD). Además de los habituales (pilas, colas, colas de prioridad, conjuntos, tablas, árboles binarios de búsqueda, montículos y árboles AVL), un TAD especialmente adecuado para los estudiantes de matemáticas es el de polinomios. A continuación muestro la implementación que estoy diseñando en Haskell para incluirla en el tema.

Del código deseo resaltar las siguientes características:

  • Independización de los resultados de las implementaciones mediante las funciones de escritura.
  • Comprobación de las implementaciones con QuickCheck mediante las funciones generadoras de polinomios.

A continuación muestro los ficheros con los códigos desarrollados.
Read More “El tipo abstracto de datos de los polinomios en Haskell”