Taller de Programación Lógica y Funcional

Las calificaciones temporales ya han sido ingresadas en el SIIAU.


Resolvedor de ecuaciones (Prolog) de la clase de Junio 10, 2009. A completar.
Resolvedor de ecuaciones (LISP) de la clase de Junio 10, 2009. A completar.
Canibales2009A.txt Problema de los canibales y misioneros, clase del 27 Mayo 2009.
ListasLisp2009A.txt Quicksort en LISP, clase del 27 de Mayo del 2009.
Enviar comentario anonimo.

Requerimientos para la Tarea 1: Implementar todos los predicados enumerados en este programa. Para entregar el 25/Feb/09.

Clases de OpenGL Basico.


Enlaces relacionados con patentes

  • Patente "SISTEMA Y METODO PARA LA IMPRESI“N Y VERIFICACION DE DOCUMENTOS SEGUROS" de Sergio Fernandez
  • WIPO PatentScope Patent Search. Sistema de busqueda de patentes internacional.
  • U.S. Patent Search.
  • IMPI. Pagina oficial del Insituto Mexicano de la Propiedad Intelectual. Los formatos para hacer patentes y la explicacion del proceso en Mexico se encuentra aqui.

  • Candidatos a Ensayos:

  • 10 puntos sobre calificacion final con 5 errores de tolerancia (ortograficos o de gramatica). Se aceptan sugerencias para otros temas de ensayo.
  • Placebo Effect: A Cure in the Mind.
  • Quantum Entanglement. Interesante articulo sobre los efectos del entrelazamiento cuantico.
  • Self-Modifying Code Patente sobre codigo auto-modificable.
  • The Evolutionary Origins of Hiccups and Hernias. Articulo sobre el origen evolutivo del hipo y las hernias... entre otras cosas.
  • One World, Many Minds. Articulo sobre las diferentes inteligencias no-humanas que tambien habitan este planeta.
  • The Future of Man -- How will Evolution Change Humans?
  • Do White Blood Cells Make Cancer Deadly?
  • On the Emergence of Life in the Cosmos. Un ensayo mio, publicado aqui como muestra.

  • Pac-Man.zip Mi proyecto de Pac-Man en OpenGL/C++/Prolog. Modificaciones y contribuciones son bienvenidas. Si alguien logra modificarlo para que quede como plataforma de evaluacion para futuros semestres... 100 final automatico. El proyecto esta en desarrollo, asi que esperen ver bugs y codigo incompleto.

  • Archivos para las Tareas 3 y 4:
  • BinTreesSWI.zip DLL para visualizar arboles binarios

  • RoboPlugin.zip El plug-in de la tarea anterior que se habra de modificar para esta tarea.
  • Room.pl El cuarto para la simulacion de navegacion robotica. Este es un archivo de codigo fuente de Prolog, recuerden renombrar la extension a .pl
  • RoboVisualizer.zip Proyecto que sirve para visualizar un mapa de navegacion robotico y otras cosas
  • CommandTester.zip Proyecto que prueba el envio de comandos al visualizador de OpenGL.
  • glutming.zip GLUT version GNU.

  • Archivos para la Tarea 2:

  • Tarea2.zip Proyecto que muestra un objeto tridimensional en OpenGL (una taza de te) y su Plug-in asociado para Prolog. El objetivo de este proyecto es ordenar el modelo tridimensional usando algoritmos codificados en Prolog.
  • Pasos para correr el ejemplo:
  • Correr el proyecto de OpenGL
  • Consultar Sorts.pl y ejecutar lo siguiente en la consola de Prolog
  • ?- loadDLL.
  • ?- sort(quicksort).
  • Regocijarse en la radiancia de la taza de te.

  • glutming.zip GLUT version GNU. Para compilar el programa anterior, se necesita instalar esta biblioteca

  • WinMinePlayerProlog.zip Plug-in para Prolog que implementa la funcionalidad del WinMinePlayer (es decir, la captura de pantalla y sintesis de movimientos y clicks de mouse). Este plug-in puede usarse como plataforma para implementar un jugador al buscaminas en Prolog.
  • WinMinePlayer.zip Proyecto en Lenguaje C que juega al Buscaminas (y algunas veces hasta gana!). Este proyecto se basa en el "SynthInput" y agrega, ademas, metodos de captura y digitalizacion de imagenes para permitir la retroalimentacion necesaria para implementar un programa de I.A. que juegue al buscaminas. La parte de I.A (en Prolog) se deja como ejercicio para el lector.
  • WinMinePlayer-Eng.zip Version en Ingles del proyecto que juega al buscaminas. Los windows en ingles tienen una ventana que es ligeramente mas alta y la version anterior no funciona en esos casos. Esta version solo ejemplifica el uso del generador de eventos y captura de pantalla.
  • SynthInput.zip Proyecto que sintetiza entrada del teclado y el mouse y la envia a otra ventana. El proyecto asume que el proceso "Buscaminas" ya se encuentra corriendo. El proposito de este proyecto es lograr que Prolog eventualmente pueda jugar al buscaminas mediante la biblioteca que se encuentra en este proyecto. La inspiracion de esto fue mi video favorito de Youtube: White and Nerdy.



  • El programa oficial de la materia
  • Instrucciones para configurar el SWI Prolog.
  • Introduccion a Prolog. Read me! I'm your friend!
  • Introduccion a LISP

  • MapReduce Jeffrey Dean and Sanjay Ghemawat, Google. Articulo que habla sobre como se uso un modelo basado en programacion funcional para implementar la maquina de busqueda de Google.
  • Structure and Interpretation of Computer Programs. Este es el libro que antes se usaba en el MIT para enseñar a programar. Es muy interesante notar que se usaba un dialecto de LISP llamado Scheme para estos fines.