How to get generalization of term. Prolog
F开发者_JAVA百科or example - I have some terms:
moves(1, [1]).
moves(1, [2]).
moves(1, [3]).
How can I get next term?
moves(1, [1,2,3]).
% I have
moves(1, [1]).
moves(1, [2]).
moves(1, [3]).
% I need to write some predicate which
transform_moves :-
% ...
% ...
assert(moves(Pos, Arr)),
% moves(1, [1,2,3]).
Program:
:- dynamic moves/2.
moves(1, [1]).
moves(1, [2]).
moves(1, [3]).
transform_moves(Pos) :-
findall(Y, moves(Pos, [Y]), L),
retractall(moves(Pos, _)),
assert(moves(Pos, L)).
Call:
?- transform_moves(1).
精彩评论