Este repositorio contiene las relaciones de ejercicios de programación funcional con Haskell usadas en el curso de Informática (de 1º del Grado en Matemáticas de la Universidad de Sevilla). Están ordenadas según los temas del curso.
Se puede instalar como se explica en la Guía de instalación.
- Definiciones por composición sobre números, listas y booleanos.
- Definiciones con condicionales, guardas o patrones.
- Definiciones por recursión.
- Operaciones conjuntistas con listas.
- El algoritmo de Luhn.
- Números de Lychrel.
- Funciones sobre cadenas.
- Codificación por longitud.
- Funciones de orden superior y definiciones por plegados.
- Definiciones por plegados.
- Ecuación con factoriales.
- Enumeraciones de los números racionales.
- Tipos de datos.
- Tipos de datos algebraicos: Árboles binarios.
- Tipos de datos algebraicos.
- Tipos de datos: Modelización de juego de cartas.
- Mayorías parlamentarias.
- Cadenas de bloques.
- Evaluación perezosa y listas infinitas.
- La sucesión de Kolakoski.
- El triángulo de Floyd.
- La sucesión de Hamming.
- El juego del nim y las funciones de entrada/salida.
- Cálculo del número pi mediante el método de Montecarlo.
- Ejercicios con IO.
- Operaciones con conjuntos.
- Operaciones con conjuntos usando la librería Data.Set.
- Relaciones binarias homogéneas.
- Relaciones binarias homogéneas con la librería Data.Set.
- El tipo abstracto de los multiconjuntos mediante diccionarios.
- Operaciones con el tipo abstracto de datos de los polinomios.
- División y factorización de polinomios mediante la regla de Ruffini.
- Implementación del TAD de los grafos mediante listas.
- Implementación del TAD de los grafos mediante diccionarios.
- Problemas básicos con el TAD de los grafos.
- Ejercicios sobre grafos.
- Rompecabeza del triominó mediante divide y vencerás.
- El problema del granjero mediante búsqueda en espacio de estado.
- El problema de las fichas mediante búsqueda en espacio de estado.
- El problema del calendario mediante búsqueda en espacio de estado.
- Resolución de problemas mediante búsqueda en espacios de estados.
- Programación dinámica: Caminos en una retícula.
- Programación dinámica: Turista en Manhattan.
- Programación dinámica: Apilamiento de barriles.
- Camino de máxima suma en una matriz.
- Vectores y matrices.
- Método de Gauss para triangularizar matrices.
- Vectores y matrices con las librerías.