UTNianos

Versión completa: Recursividad en Prolog
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Buen eso..... No catso nada de recursividad con el prolog.

En uno de los Tps nos piden a partir de una lista como esta:
[elem1, elem2, elem3, elem4,elem5]
... crear un listado de listas de todas las combinaciones de sus elementos de a pares:
X=[elem1,elem2]
X=[elem2,elem3]
X=[elem3,elem4]
X=[elem4,elem5]
X=[elem1,elem3]
X=[elem3,elem5]
etc...........

¿se entiende maso?
¿Como encaro una locura así?

slds!
2 cosas, tengo la formula pero no tengo toda la idea de como explicartelo. Si te gusta es esto:

varia(0,_,[]).
varia(N,L,[H|Varia]) :- N>0,N1 is N -1,
borrar(H,L,Rest),varia(N1,Rest,Varia).

borrar(X,[X|T],T).
borrar(X,[H|T],[H|NT]) :- borrar(X,T,NT).

si vos consultas varia(2,[1,2,3],ListasPosibles).
te tira [1,2][1,3][2,1][2,3][3,1][3,2]

En esta pagina hay mas =) que varios vi que tomaron en parciales/tps
http://webdelprofesor.ula.ve/ingenieria/...rolog.html

productoCartesiano(P,Q,R) :- findall([X,Y],(member(X,P),member(Y,Q),R).



No lo probé, pero fijate.


?- productoCartesiano([elem1, elem2, elem3, elem4,elem5],[elem1, elem2, elem3, elem4,elem5],X).


URLs de referencia