在 Prolog 中访问数字和字符串向量

Access to a number and a vector of an String in Prolog

我必须做这样定义图形的 clique 问题:

[1-[2,3,4,5,6], 2-[1,3,4,5,6], 3-[1,2,4,5,6],4- [1,2,3,5,6], 5-[1,2,3,4,6], 6-[1,2,3,4,5]]

所以我开始这样做

c(_,[]).
c(G,X):-length(G,S),rest(X, G, G1).



rest(X, [X|Ys], Ys).
rest(X, [_|Ys], Zs):-rest(X, Ys, Zs).

我收到:

S = 6-[1,2,3,4,5] ;
S = 5-[1,2,3,4,6] ;
S = 4-[1,2,3,5,6] ;
S = 3-[1,2,4,5,6] ;
S = 2-[1,3,4,5,6] ;
S = 1-[2,3,4,5,6] ;
S = [] ;
parsing query: c([1-[2,3,4,5,6],2-[1,3,4,5,6],3-[1,2,4,5,6],4-[1,2,3,5,6],5-[1,2,3,4,6],6-[1,2,3,4,5]],S) ok!

所以我试图获取每次迭代的第一个元素 (1,2,3,4,5,6),然后是对... 但不知道如何访问每个元素。

这样做:

rest(X1, [X1-X2|Ys], Ys).
rest(X, [_|Ys], Zs):-rest(X, Ys, Zs).

可以获得第一个元素