|
UNIVERSIDAD DE LOS ANDES COORDINACION GENERAL DE ESTUDIOS INTERACTIVOS A DISTANCIA MERIDA - VENEZUELA |
||||
|
Curso de Lógica y MatemáticaPostgrado en Modelado y Simulación de Sistemas |
||||
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.
|
|||||
|