Herramientas de usuario

Herramientas del sitio


introalg:taller09

¡Esta es una revisión vieja del documento!


Taller de Programación Declarativa

Introducción a los Algoritmos 2009

Este año vamos a ver dos paradigmas de programación: programación lógica y programación funcional. En ambos casos se trata de programación declarativa, que tiene varias diferencias con el paradigma de programación imperativa que quizás muchos de ustedes conozcan (C, C++, Visual Basic, Perl).

Las clases serán los lunes en el aula D2 (laboratorio de las baterías D), en dos comisiones: comisión 1, de 11:30 a 14:30, comisión 2, de 14:30 a 17:30.

Clases

Mar 30 Clase 1 Introducción a programación declarativa, Introducción a prolog, átomos, sintaxis, pequeño ejemplo.
Abr 6 Clase 2 Ampliación de la clase anterior.
Abr 13 Clase 3 Dos ejemplos de razonamiento en prolog.
Abr 20 Clase 4 Introducción a programación funcional, manejo de Hugs, inferencia de tipos, tuplas, análisis por casos
Abr 27 Clase 5 Pattern matching numérico, tuplas y listas, divide y conquista, estilo de código
May 4 Clase 6 Recursión lineal, aplicaciones, filtros, acumuladores
May 11 Clase 7 Parcialito 1
May 18 Clase 8 generalización de las funciones vistas (map, filter, fold, etc.), alto orden
Jun 1 Clase 9 Aplicando generalizaciones a funciones complejas, recursión en dos argumentos
Jun 8 Clase 10 Parcialito 2
Jun 15 Clase 11 La Guinda

Problemas

Programas

Intérprete de prolog (programación lógica)

Vamos a usar SWIProlog.

Intérprete de haskell (programación funcional)

Vamos a usar Hugs.

Las principales distribuciones Linux (Debian, Ubuntu, Fedora y Gentoo) incluyen Hugs como un paquete de instalación.
Para los usuarios de Windows y *nix, hay versiones para bajar desde Downloading Hugs.
En Windows tenemos MinHugs una versión pequeña de solo 1.4MiB de descarga.

Bibliografía

Programación lógica

Hay varios cursos muy claros y didácticos para aprender Prolog on-line, los que más me gustan a mí (de más a menos):

Learn Prolog Now!, en inglés (también en |libro.

Programación funcional

introalg/taller09.1237547031.txt.gz · Última modificación: 2018/08/10 03:03 (editor externo)