LOGOSJUNTOS.gif (3585 bytes)   

UNIVERSIDAD DE LOS ANDES 

COORDINACION GENERAL DE ESTUDIOS INTERACTIVOS A  DISTANCIA

MERIDA - VENEZUELA

SIGU

 

                wpe1.jpg (1485 bytes)

              wpe2.jpg (2265 bytes)

 

 

 

 

 

 

 

 

 

 

 

Curso de Lógica y Matemática

    Postgrado en Computación                                        

    Postgrado en Modelado y Simulación de Sistemas      


ANTERIOR

PRINCIPAL

SIGUIENTE

 

MANUAL de PROLOG - BRATKO

 

  PROCESADOR DE LISTA GENERALIZADO

 

        En esta sección presentamos un procesador de lista generalizado, el cual es capaz de hacer diversas operaciones de lista dependiendo de la definición de las funciones e y f. Este programa es una versión simplificada del procesador de lista generalizado de R.A. O'Keefe's mostrado en el libro The Craft of PROLOG, MIT, 1990.

 


procesador_lista([],R) :- e(R).
procesador_lista([H|T],R) :-
   procesador_lista(T,TR),
   f(H,TR,R).

 

           Si definimos las funciones e y f en la siguiente forma:

 
e(0).
f(A,B,C) :- C is A+B.

 

           El programa resultante suma los elementos en la lista.

        La siguiente definición:

 
e(0/0).
f(X,A/B,A1/B1) :- A1 is A+X, B1 is B+1.

 

        Puede ser usada para calcular el promedio de los elementos de la lista dada.

        El mismo esquema puede ser usado para ordenar los elementos en la lista o para generar permutaciones. Primero definimos las funciones e y f.

 
e([]).
f(X,L,R) :- insertar(X,L,R).

 

        Si el procedimiento insertar es definido en la siguiente forma:

 
insertar(X,[],[X]).
insertar(X,[Y|T],[X,Y|T]) :- X<=Y.
insertar(X,[Y|T],[Y|NT]) :- X>Y,insertar(X,T,NT).

 

       El programa resultante ordena la lista.

       Si la siguiente definición de insertar es usada:

 
insertar(X,T,[X|T]).
insertar(X,[Y|T],[Y|NT]) :- insertar(X,T,NT).

 

       El programa resultante genera las permutaciones de la lista dada sucesivamente.

 

ANTERIOR

PRINCIPAL

SIGUIENTE