I1M2017: Definiciones de la lista infinita de factoriales en Haskell

En clase de hoy de Informática de 1º del Grado en Matemáticas hemos comentando el ejercicio 9 de la 10ª relación en el se compara 5 definiciones de la lista infinita de los factoriales desde el punto de vista de su simplicidad y eficiencia.

Las definiciones y comparaciones estudiadas son las que se muestran a continuación
Read More “I1M2017: Definiciones de la lista infinita de factoriales en Haskell”

I1M2017: Programas interactivos en Haskell

En la clase de hoy de Informática de 1º del Grado en Matemáticas se ha estudiado el tema 13 sobre programas interactivos.

Se ha empezado observando un procedimiento que pide que se escriba una cadena y devuelve su longitud:

A continuación se han estudiado los elementos implicados en el procedimiento anterior: el tipo de las acciones de entrada/salida (IO), las acciones básicas (getChar, putChar y return), la secuenciación de acciones con do y la definición de algunos procedimientos del preludio (getLine, putStr, putStrLn, y sequence_).

Como aplicación se han estudiado un programa para adivinar un número en sus dos versiones: cuando la máquina tiene que adivinar el número pensado por el humano y cuando es el humano el que tiene que adivinar el número generado aleatoriamente por la máquina.

Los apuntes correspondientes a la clase son las primeras secciones del tema 6:

I1M2017: Evaluación perezosa en Haskell

En la clase de hoy de Informática de 1º del Grado en Matemáticas se ha estudiado la evaluación perezosa en Haskell. Se han visto la estrategias de evaluación perezosa e impaciente, se han comparado respecto de la terminación y el número de pasos necesarios en las computaciones, se ha aplicado a la computación con estructuras infinitas y se han visto casos en los que se aumenta la eficiencia con evaluación estricta.

Como ejemplo, se ha estudiado el cálculo de los números primos mediante la criba de Erastótenes.

Los apuntes correspondientes a la clase son