Calificaciones Septiembre 2005
Calificaciones Febrero 2005
Programación Funcional
Dirección con información sobre el libro Razonando con Haskell. Un curso sobre programación funcional:
http//www.lcc.uma.es/RazonandoConHaskell
- Tema I. Programación Funcional.
Funciones. Sesiones y Declaraciones. Reducción de expresiones. Transparencia Referencial- Tema II. Introducción a Haskell.
El lenguaje Haskell. Tipos simples predefinidos. Constructores de tipos predefinidos. Comentarios.
Operadores. Comparación de patrones. Funciones a trozos. Expresiones condicionales.
Definiciones locales. Expresiones case. La función error. Expresiones lambda. Ámbitos y módulos.- Tema III. Funciones de Orden Superior y Polimorfismo.
Parcialización. Funciones de orden superior. Polimorfismo.- Tema IV. Definiciones de tipo.
Sinónimos de tipo. Definiciones de tipos de datos. Tipos recursivos. Tipos parametrizados.
Definiciones newtype. Propiedades de funciones. Sobrecarga.- Tema V. El sistema de clases de Haskell.
Introducción. Clases e Instancias. Declaraciones de clases e instancias. Métodos por defecto. Subclases.
Instancias paramétricas. Algunas clases predefinidas. Derivación de instancias. Tipos sobrecargados.
Contextos.- Tema VI. Programación con listas.
El tipo lista. Secuencias aritméticas. Concatenación de listas. Inducción sobre listas. Selectores.
Emparejando listas. Aplicando una función a los elementos de una lista. Filtros. Listas por comprensión.
Plegado de listas. Ordenación de listas. Funciones combinatorias. Otras funciones predefinidas.- Tema IX. Programación con árboles.
Árboles generales. Representación en Haskell. Árboles binarios. Recorridos en árboles binarios.
La función fmap. Plegado de árboles. Árboles binarios de búsqueda. Inducción para árboles binarios.Prácticas
WinHugs98. El entorno puede obtenerse desde la dirección http://www.lcc.uma.es/~pepeg/mates/InstallWinhugs.exe.
Relación de ejercicios
Programación Lógica
- Tema 0. Introducción.
- Tema I. Sistemas para la Programación Lógica.
- Algoritmo de unificación de Robinson.
- Programa Prolog que muestra los pasos del algoritmo.
- Ejercicios de Unificación.
- Ejemplo de Árbol de búsqueda.
- Tema II. Programación Elemental con Bases de Datos y Programación Recursiva.
- Tema III. Programación con Listas y Árboles. El tratamiento de árboles es mas coherente
- Tema IV. Control Explícito en Prolog.
- Visualización del efecto del corte en un árbol de búsqueda.
- Ejemplo del árbol de búsqueda resultante tras efectuar los cortes.
- Ejemplos referenciados en los apuntes.
Prácticas
SWI-Prolog: Lenguaje de programación utilizado en las clases de laboratorio.
http://www.swi-prolog.orgPara utilizar el predicado crea/4 se debe colocar en el mismo directorio de instalación el fichero pl.ini.
Guía de uso básico de Prolog (SWI-Prolog) actualizada a la versión 2002/2003.
Programas para la Visualización de árboles SLD: http://www.lcc.uma.es/~pacog/sldDraw.
Más información de Programación Lógica en http://www.lcc.uma.es/~lopez/apuntes/progdec.
Examen de Septiembre 2001 resuelto
Examen de Junio 2001 resuelto
Examen de Septiembre 2001 resuelto