在 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).
可以获得第一个元素
我必须做这样定义图形的 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).
可以获得第一个元素