I1M2019: Tipos y clases en Haskell

En la primera parte de la clase de hoy de Informática de 1º del Grado en Matemáticas se ha explicado el tema 3 en el que se introducen los tipos y las clases en Haskell. Los objetivos de tema son aprender

  • qué es un tipo,
  • cómo expresar que una expresión tiene un tipo determinado,
  • cómo preguntar a Haskell por el tipo de una expresión,
  • cómo determinar el tipo de una expresión,
  • cuáles son los tipos básicos (Bool, Char, String, Int, Integer, Float y Double),
  • cuáles son los tipos compuestos (listas, tuplas y funciones),
  • qué es el polimorfismo y la sobrecarga de funciones y
  • cuáles son las clases básicas (Eq, Ord, Show, Read, Num, Integral y Fractional), sus métodos e instancias.

Además se ha comentado de GHCi

  • cómo obtener la ayuda con :help
  • cómo obtener el tipo de una expresión con :type o, simplemente, :t
  • como activar la información de tipos con :set +t
  • como activar la información de tipos con :unset +t
  • cómo obtener información con :info

Los apuntes utilizados son los del tema 3

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

I1M2019: Ejercicios de definiciones por composición sobre números y listas (1)

En la clase de hoy del curso de Informática de 1º del Grado en Matemáticas hemos comentado soluciones de los 13 primeros ejercicios de la 1ª relación sobre definiciones por composición de funciones sobre números, listas y booleanos.

En el comentario de algunos ejercicios se ha indicado:
+ la comprobación con QuickCheck de equivalencia de soluciones y
+ la comparación de eficiencia de soluciones, activando las estadísticas con :set +s

Los ejercicios y su solución se muestran a continuación
Read More “I1M2019: Ejercicios de definiciones por composición sobre números y listas (1)”

Resumen de lecturas compartidas durante septiembre de 2019

Esta entrada es una recopilación de lecturas compartidas, durante septiembre de 2019, 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 septiembre de 2019”

I1M2019: Introducción a la programación funcional con Haskell

En la primera parte de la clase del 27 de septiembre del curso de Informática (de 1º del Grado en Matemáticas) se han comentado algunas de las soluciones publicadas de programación de dibujos con CodeWorld; concretamente

En la segunda parte, se ha explicado cómo instalar los sistemas Haskell y Emacs.

En la tercera parte, se ha realizado una introducción a la programación con Haskell usando dos entorno de programación: Emacs e IHaskell]. Concretamente, se ha explicado cómo

  • usar Haskell como calculadora aritmética (con las funciones +, -, *, /, div y ^).
  • escribir guiones de Haskell en emacs.
  • cargar los guiones y evaluar expresiones con las funciones definidas.

También se han comentado las funciones sobre números, listas y booleanos del resumen de funciones y ejemplos.

Finalmente, se ha mostrado el uso de Haskell y emacs (la sesión está grabada en este vídeo) y el proceso para la solución colaborativa de ejercicios (la sesión está grabada en este vídeo).

Se han propuesto como ejercicios los de la 1ª relación

El libro de IHaskell utilizado está aquí

Los apuntes utilizados son los del tema 2

I1M2019: Introducción a la programación funcional

En primera parte de la clase del 25 de septiembre del curso de Informática (de 1º de Grado en Matemáticas) se ha presentado la asignatura siguiendo el resumen del proyecto docente y los materiales en la página de la asignatura:

Se ha comentado el sistema de evaluación y se ha anunciado las fechas de los exámenes de todo el curso.

La segunda parte de la clase ha consistido en una introducción a la
programación funcional basada en el tema 0 en el que se usa CodeWorld/Haskell para mostrar cómo escribir las funciones de los programas para hacer dibujos. En concreto se han estudiado

  • cómo programar dibujos elementales
  • cómo programar dibujos compuestos
  • cómo transformar dibujos con traslaciones, rotaciones, escalamiento y
  • coloreado.
  • cómo programar animaciones

Los apuntes utilizados son los del tema 0

Como ejercicio se ha propuesto la publicación de programas de dibujo y animaciones en la wiki de la asignatura.