I1M2018: Definiciones por comprensión

En la primera parte de la clase de hoy de Informática de 1º del Grado en Matemáticas se ha explicado la primera parte del tema 5 en la que se estudia cómo definir funciones en Haskell usando listas de comprensión. En concreto, hemos visto cómo definir:

  • listas con un generador,
  • listas con varios generadores,
  • listas con generadores dependientes y
  • listas con guardas,
  • listas de comprensión con emparejamientos.

También se han estudiados las cadenas como caso particular de listas y cómo aplicar definiciones por comprensión a cadenas.

También se ha explicado cómo usar QuickCheck para la

Los apuntes utilizados son los del tema 5

I1M2018: Métodos elementales de definición de funciones en Haskell

En la segunda parte de la clase de hoy del curso Informática (de 1º de Grado en Matemáticas) se ha explicado el tema 4 donde se estudia cómo definir funciones en Haskell usando los formas básicas: composición, condicionales, guardas y patrones.

Como tarea para la próxima clase se ha propuesto resolver de manera colaborativa los ejercicios de la 2ª relación.

Los apuntes utilizados son los del tema 4

I1M2018: Tipos y clases en Haskell

En 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

I1M2018: 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 8 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:

  • el uso creativo del fallo; es decir, cómo a partir de una definición incorrecta se puede obtener otra correcta 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 “I1M2018: Ejercicios de definiciones por composición sobre números y listas (1)”

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

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

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 emacs como entorno de programación. 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.

Los apuntes utilizados son los del tema 2