LMF2019: Programación funcional con Isabelle/HOL

En la clase de hoy del curso de Lógica matemática y fundamentos se ha presentado la programación funcional en Isabelle/HOL resaltando la analogía con la programación en Haskell estudiada en primer curso en la asignatura de Informática

La clase se ha dado mediante videoconferencia y el correspondiente vídeo es

La teoría con los ejemplos presentados en la clase es

Como tarea se han propuesto los ejercicios de la relación 8.

I1M2019: El tipo abstracto de datos de las colas de prioridad en Haskell

En la primera parte de la clase de hoy de Informática de 1º del Grado en Matemáticas se ha estudiado el tipo abstracto de las colas de prioridad.

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 listas,
  • análisis de la complejidad de las definiciones de las operaciones básicas y
  • verificación con QuickCheck de sus propiedades características.

La clase se ha dado mediante videoconferencia y el correspondiente vídeo es

Los apuntes correspondientes a la clase son los del tema 16

Una versión interactiva de los apuntes en IHaskell se encuentra aquí.

Resumen de lecturas compartidas durante marzo de 2020

Esta entrada es una recopilación de lecturas compartidas, durante marzo de 2020, en Twitter fundamentalmente sobre programación funcional y demostración asistida por ordenador.

Las lecturas están ordenadas según su fecha de publicación en Twitter.

Al final de cada artículo se encuentran etiquetas relativas a los sistemas que usa o a su contenido.

Una recopilación de todas las lecturas compartidas se encuentra en GitHub.

Read More “Resumen de lecturas compartidas durante marzo de 2020”

I1M2019: El tipo abstracto de datos de las colas en Haskell

En la segunda parte de la clase de hoy del curso de Informática de 1º del Grado en Matemáticas hemos continuado el estudio de los tipos abstractos (TAD) de datos en Haskell y hemos presentados el TAD de las colas siguiendo el esquema usado para el TAD de las pilas.

Se ha comenzado la modelización de las colas observando la forma de introducir o extraer sus elementos. El resultado de la modelización es la especificación del TAD: su signatura y propiedades características.

A continuación se han estudiados dos implementaciones (una basada listas y la otra en pares de listas) juntos con sus complejidades.

Se ha vuelto a resaltar la forma de conseguir la abstracción de tipos en Haskell mediante módulos y exportación sólo de la signatura.

Finalmente, usando QuickCheck se comprueban las propiedades características del TAD de las colas.

La clase se ha dado mediante videoconferencia y el correspondiente vídeo es

Los apuntes correspondientes a la clase son los del tema 15