lunes, 30 de septiembre de 2013

Prolog, lista de backtracks


En prolog listar BACKTRACKS suele ser muy util, esta simple funcion con algunas modificaciones genera una lista A de backtracks, asimismo el segundo argumento (Ax) puede usarse como una lista de variables no deseadas


p(1).
p(2).
p(3).
p(4).
p(5).
p(6).
p(7).
p(8).
p(9).

pes([X|A],Ax):-
    p(X),
    not(member(X,Ax)),
    pes(A,[X|Ax]),!.

pes([],Ax):-!.


-----------(corrida de ejemplo)--------------------
 [debug]  ?- pes(A,[]). 
A = [1, 2, 3, 4, 5, 6, 7, 8, 9]. 

 [debug]  ?- pes(A,[4,5,6,7]).
A = [1, 2, 3, 8, 9].

Hasta la proxima.

No hay comentarios:

Publicar un comentario