I1M2017: Haskell para ciencias del dato

En la segunda parte de la clase de hoy de Informática de 1º del Grado en Matemáticas hemos comentado, basándonos en Over 130 practical recipes for data analysis and machine learning, cómo se puede usar Haskell en ciencias del dato.

Se ha comentado los puntos fundamentales del proceso: lecturas de datos, su procesamiento y la visualización y exportación de los resultados.

Se ha comentado algunas de las recetas que recoge temas que ya hemos estudiado o suponen pequeñas ampliaciones:

I1M2017: El TAD de los polinomios en Haskell

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 y sus implementaciones en Haskell

Finalmente, hemos estudiado las operaciones con los polinomios usando el TAD de los polinomios.

Los apuntes correspondientes a la clase son

I1M2017: Las librerías de conjuntos y de diccionarios en Haskell

En la segunda parte de la clase de hoy de Informática de 1º del Grado en Matemáticas se han estudiado las librerías de diccionarios y de conjuntos en Haskell.

Como primera aproximación se ha explicado su exposición en ¡Aprende Haskell por el bien de todos!. Concretamente las secciones: Data.Map y Data.Set.

En segundo lugar se ha comentado las funciones con las librerías con sus ejemplos:

Finalmente, para comentar las complejidades de las funciones, se ha visto la documentación de las librerías Data.Set y Data.Map.

I1M2017: El TAD de los conjuntos en Haskell

En la primera parte de la clase de hoy de Informática de 1º del Grado en Matemáticas hemos estudiado el tipo abstracto de datos de los conjuntos y tres de sus implementaciones en Haskell.

Se ha seguido el mismo patrón que en los anteriores tipos de datos:

  • elección de las operaciones básicas,
  • especificación de sus propiedades,
  • implementación en Haskell mediante no ordenadas con duplicados,
  • implementación en Haskell mediante listas no ordenadas sin duplicados,
  • implementación en Haskell mediante listas ordenadas sin duplicados,
  • análisis de la complejidad de las definiciones de las operaciones básicas en las tres implementaciones y
  • verificación con QuickCheck de sus propiedades características.

Los apuntes correspondientes a la clase son