/************************************************************************
concatena1 : concatena listas de symbol
posibles entradas : concatena1(L,L1,L2):
a.- instanciar (darle valores) L y L1 dando como resultado L2 que
es la uni¢n o concatenaci¢n de L con L1;
b.- instanciar L y L2 dando como resultado L1 que equivale a
encontrar la lista de simbolos (L1, no esta instanciada) que
concatenada con L de como resultado L2 (que ya esta
instanciado);
c.- instanciar L1 y L2 dando como resultado L (que esta
instanciada que equivale a encontrar la lista de simbolos (L)
que concatenada con L1 de como resultado L2 (que ya esta
instanciado);
Concatena2 : concatena lista de enteros
posibles entradas : igual a concatena1, pero en lugar de lista de simbolos
trabaja con lista de enteros.
Para seguir el programa se ha colocado un trace que permite seguir la
ejecuci¢n clausula por clausula, para ir avanzando s¢lo hay que presionar
F10, si deseas verlo continuado, sin esta pausa, basta con eliminar el
trace.
Inteligencia Artificial
Gonzalo Villarreal Farah
Para Turbo Prolog 2.0 de Borland
****************************************************************************/
domains
lista_symbol=symbol*
lista_numeros=integer*
predicates
concatena1(lista_symbol,lista_symbol,lista_symbol)
concatena2(lista_numeros,lista_numeros,lista_numeros)
clauses
concatena1([],L,L).
concatena1([X|Y],L,[X|Z]):-
concatena1(Y,L,Z).
concatena2([],L,L).
concatena2([X|Y],L,[X|Z]):-
concatena2(Y,L,Z).