Categorías destacadas
programacion php    
Artículo
13
¡votar!

 Tutorial básico de programación en Prolog


Resumen y ejercicios

Hasta este momento, el lector debería haber aprendido:

  1. Qué es un entorno de desarrollo Prolog.
  2. Qué es una variable lógica.
  3. Qué es un término.
  4. Cómo funciona la unificación.
  5. Cómo se ejecutan objetivos desde el top-level shell.
  6. Cómo se ejecutan secuencias de objetivos.
  7. Cómo el backtracking permite explorar varias soluciones.
  8. Cómo se escribe un fichero fuente en Prolog.
  9. Cuál es el motivo de que aparezcan puntos de elección.
  10. Qué es la reversibilidad.
  11. Qué son los modos de uso y para qué sirven.
  12. Cómo se realizan cómputos aritméticos.

. Ejercicios sobre términos y variables

A continuación aparecen una serie de expresiones. Trate de identificar si se trata de variables, términos o si están mal construidos.

  • p(j(G),h(12),j(3),a+b)
  • p(j(G),H(12),j(3),a+b)
  • __abc
  • aBc
  • AbC
  • 3 $ 2
  • ' '(_,_)
  • _'A'(12)
  • 32.1
  • pepe > 32.2

. Ejercicios sobre unificación

Indique si los siguientes pares de términos unifican entre sí. En caso de que unifiquen, indique a que valores se ligan las variables.

  • p(a) y p(A)
  • p(j(j(j(j(j))))) y p(j(j(j(j))))
  • p(j(j(j(j(j))))) y p(j(j(j(X))))
  • q(_,A,_) y q(32,37,12)
  • z(A,p(X),z(A,X),k(Y)) y z(q(X),p(Y),z(q(z(H))),k(z(3)))
  • z(A,p(X),z(A,X),k(Y)) y z(q(X),p(Y),z(q(z(H)),z(H)),k(z(3)))

Compruebe los resultados del ejercicio utilizando el top-level shell y el predicado igualdad =/2.

A continuación, ejecute las siguientes secuencias de objetivos en el top-level shell y observe las ligaduras de las variables:

  • f(X) = f(Y).
  • X = 12, f(X) = f(Y).
  • f(X) = f(Y), X = 12.
  • f(X) = f(Y), Y = 12.
  • X = Y, Y = Z, X = H, Z = J, X = 1.
  • X = 1.
  • 1 = X.
  • . Ejercicios sobre predicados

    A continuación indicamos las soluciones de tres predicados (el orden es significativo):

    • p(5,2) tiene éxito.
    • p(7,1) tiene éxito.
    • q(1,3) tiene éxito.
    • z(3,1) tiene éxito.
    • z(3,7) tiene éxito.
    • No hay más soluciones que las anteriores.

    Indique los pasos de ejecución para la secuencia p(A,B),q(B,C),z(C,A).

    Defina el predicado sumar_dos/2 que toma un número en el primer argumento y retorna en el segundo argumento el primero sumado a dos. ¿ Cuáles son los modos de uso permitidos para dicho predicado ?.

    Editando el programa de ejemplo (arbolgenealogico.pl), defina el predicado tio/2 donde tio(A,B) significa que A es el tío de B. Utilize dicho predicado desde el top-level shell para averiguar quienes son los sobrinos de geronimo. Recuerde que cada vez que modifique el fichero fuente debe volver a compilarlo mediante el predicado consult/1.

     
    Publicado por:
    manuel delgado
    Recomendar
    a un amigo
    Compartir
    en redes
     
    Comentarios
     
    BBDD
    Entornos de desarrollo
    Entretenimiento
    Herramientas
    Internet
    Lenguajes de script
    Lenguajes imperativos
    Lenguajes orientados a objeto
    Otros lenguajes
    Plataformas
    Teoría
    Varios
    Copyright © 1998-2011 Programación en Castellano. Todos los derechos reservados
    Datos legales | Politica de privacidad | Contacte con nosotros | Publicidad

    Diseño web y desarrollo web. Un proyecto de los hermanos Carrero.

    Red internet:
    Juegos gratis | Servidores dedicados
    Más internet: Password | Directorio de weblogs | Favicon