添加元素列表多次prolog

时间:2016-11-28 20:31:25

标签: list prolog append

所以这就是问题:写一个谓词

triple(Xs,Ys)< - Ys中的每个元素都是Xs的成员,并且在Ys中连续出现三次

示例:

?- triple([a,b,c], L).
L = [a,a,a,b,b,b,c,c,c] 


add(X,Xs,[X|Xs]).

triple(Xs,Ys):- add(X,Xs,[X|Ys])

这会将项目附加到列表中,例如 ?- triple([1,2,3],L). L = [3, 4, 5] .

如何让它多次追加我尝试重新进入该行,但无效或插入逗号再重新输入,我甚至尝试了列表连接,但它只添加了相同的列表无限次。 / p>

1 个答案:

答案 0 :(得分:1)

简单模式可以是以下

triple([], []).
triple([H | Ti], [H, H, H | To]) :-
  triple(Ti, To).