Например - у меня есть несколько терминов:
moves(1, [1]).
moves(1, [2]).
moves(1, [3]).
Как мне получить следующий термин?
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]).