Zona HTML Zona Java Zona PHP Zona ASP Zona Bases de datos
Inicio > Tutoriales > Otros lenguajes > Prolog > Tutorial básico de programación en Prolog
-Tutoriales

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.

     
    Patrocinados
     

    Copyright © 1999-2010 Programación en castellano. Todos los derechos reservados.
    Formulario de Contacto - Datos legales - Publicidad

    diseño y desarrollo web por Color Vivo Internet. Un proyecto de los Hermanos Carrero