Menu Close

Etiqueta: I1M

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.

Libro de exámenes de programación funcional con Haskell (versión del 28 de julio de 2016)

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 2009-10 al actual.

Tras la ampliación, el libro contiene 155 exámenes con 1.012 ejercicios.

Este libro es el complemento de los anteriores:

Los códigos del libro están disponibles en Github https://github.com/jaalonso/Examenes_de_PF_con_Haskell.

Libro de exámenes de programación funcional con Haskell (del 30-nov-2009 al 15-sep-2015)

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 30 de noviembre de 2009 al 15 de septiembre de 2014.

Tras la ampliación, el libro contiene 129 exámenes y 833 ejercicios.

Este libro es el complemento de los anteriores:

Libro de exámenes de programación funcional con Haskell

He publicado una ampliación del libro Exámenes de programación funcional con Haskell (2009-2014). 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 hasta el actual.

Tras la ampliación, el libro contiene 102 exámenes y 648 ejercicios.

Este libro es el complemento de los anteriores:

El juego de Oslo en Haskell

En el número especial de la revista Mundo científico sobre El universo de los números se presenta el juego de Oslo. En dicho juego
se trata de obtener cualquier número natural no nulo, por medio de aplicaciones sucesivas de una de las reglas siguientes:

  1. poner un cero al final del número,
  2. poner un cuatro al final del número y
  3. dividir por 2 si el número es par.

Por ejemplo, el 3 y el 5 se pueden obtener como sigue

   4 -> 2 -> 24 -> 12 -> 6 -> 3
   4 -> 2 ->  1 -> 10 -> 5

En la siguiente relación de ejercicios (elaborada para I1M) veremos qué números se pueden alcanzar, cómo y en cuántos pasos. Además, se presentan distintas soluciones comparando sus eficiencias.

PeH: Sucesión de Fibonacci, evaluación perezosa y números construibles

Continuando con ejemplos de evaluación perezosa en Haskell, un clásico es la sucsión de Fibonacci: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, … cuyos dos primeros términos son 0 y 1 y los restantes se calcula sumando los dos anteriores.

En la siguiente relación de ejercicios se presentan distintas definiciones de la sucesión de Fibonacci basadas en la evaluación perezosa y la última
usando números construibles mediante la librería Data.Real.Constructible.

PeH: La sucesión de Kolakoski

Dada una sucesión, su contadora es la sucesión de las longitudes de de sus bloque de elementos consecutivos iguales. Por ejemplo, la sucesión contadora de abbaaabbba es 12331; es decir; 1 vez la a, 2 la b, 3 la a, 3 la b y 1 la a.

La sucesión de Kolakoski es una sucesión infinita de los símbolos 1 y 2 que es su propia contadora. Los primeros términos de la sucesión de Kolakoski son 1221121221221… que coincide con su contadora (es decir, 1 vez el 1, 2 veces el 2, 2 veces el 1, …).

En la siguiente relación (para la asignatura de Informática de 1º del Grado en Matemáticas y para la siguiente versión del libro Piensa en Haskell) se define la sucesión de Kolakoski.

Sucesiones auto descriptivas en Haskell

En las Olimpiadas de Matemáticas del 2001 se propuso el siguiente problema

Buscar todas las sucesiones finitas (x(0), x(1),…,x(n)) tales que para todo j, 0 ≤ j ≤ n, x(j) es igual al número de veces que aparece j en la sucesión.

Las sucesiones que cumplen la anterior condición se llaman auto descriptivas. Un ejemplo de sucesión auto descriptiva es [5,2,1,0,0,1,0,0,0] ya que

  • el 0 aparece 5 veces,
  • el 1 aparece 2 veces,
  • el 2 aparece 1 vez,
  • el 3 aparece 0 veces,
  • el 4 aparece 0 veces,
  • el 5 aparece 1 vez,
  • el 6 aparece 0 veces,
  • el 7 aparece 0 veces y
  • el 8 aparece 0 veces.

En la siguiente relación de ejercicios, elaborada para la asignatura de Informática (de 1º del Grado en Matemáticas) y para la siguiente versión del libro Piensa en Haskell, se resuelve el problema con Haskell.