Vídeos de las clases de algorítmica con Haskell

Con motivo de la pandemia hemos tenido que pasar la docencia al formato no presencial.

En la asignatura de Informática de 1º de Matemáticas el cambio ha tenido lugar al principio de la segunda parte del curso en el que aplica la programación funcional con Haskell, estudiada en la primera parte, a problemas de algorítmica.

Todas las clases no presenciales las he dado por videoconferencia y he subido sus vídeos a YouTube. En este momento hay 16 vídeos correspondientes a las 9 clases no presenciales impartidas:

Libro de exámenes de programación funcional con Haskell (versión del 9 de septiembre de 2017)

He actualizado el libro Exámenes de programación funcional con Haskell. El libro es una recopilación de los exámenes de la asignatura de Informática (de primero del Grado en Matemáticas) desde el curso 2009-10 al actual.

Tras la ampliación, el libro contiene 1.149 ejercicios resueltos.

Este libro es el complemento de los anteriores:

Los códigos del libro están disponibles en Github.

Iteración, recursión y punto fijo

En esta relación de ejercicios se muestra cómo se pueden transformar programas iterativos (con bucles while o for) en programas en recursivos. Para cada uno de los bucles, se elige una función y se pide definirla usando el bucle (en Python), buscar una definición recursiva que sea semejante a la anterior, definir el patrón que abstrae el bucle, definirla con el patrón y aplicar el patrón a otras funciones. Finalmente, se estudia cómo definir algunas de las anteriores funciones usando el menor punto fijo.

Read More “Iteración, recursión y punto fijo”

El triángulo de Floyd en Haskell

El triángulo de Floyd, llamado así en honor a Robert Floyd, es un triángulo rectángulo formado con números naturales. Para crear un triángulo de Floyd, se comienza con un 1 en la esquina superior izquierda, y se continúa escribiendo la secuencia de los números naturales de manera que cada línea contenga un número más que la anterior. Las 5 primeras líneas del triángulo de Floyd son

El triángulo de Floyd tiene varias propiedades matemáticas interesantes:

  • los números de la hipotenusa es la sucesión de los números triangulares; es decir, los números que puede ser representado como puntos dispuestos en forma de triángulo, empezando por el 1. Los primeros números triangulares son

    triangulares
  • los números del cateto de la parte izquierda es la sucesión de los números poligonales centrales; donde el n-ésimo número poligonal centrado es el máximo número de piezas que se pueden obtener a partir de un círculo con n líneas rectas. Los primeros números poligonales centrados son

    poligonales_centrados

En la siguiente relación de ejercicios (elaborada para I1M) se define en Haskell el triágulo de Floyd y se comprueban algunas de sus propiedades.
Read More “El triángulo de Floyd en Haskell”