Prolog列表-重复的头

时间:2018-11-27 17:05:10

标签: prolog clpfd

我正在尝试从术语列表中列出2个连续术语。因此,如果L1和L2是列表并且L2连续两次包含L1中的每个元素,则echo应该返回True。 没有clpfd。

我想让回声进入...

echo([x,1,[b]], L).  

然后返回...

L = [x,x,1,1,[b],[b]].

它确实适用于...

echo([2,1],[2,2,1,1]).
true.

这是我到目前为止所拥有的...

echo([],[]).
echo([X|XS], [Y,Z|YZS]) :-
    X #= Y,
    Y #= Z,
    echo(XS, YZS).

我收到有关条款=>

的错误
Domain error: `clpfd_expression' expected, found `x'

1 个答案:

答案 0 :(得分:2)

我猜你不想使用CLPFD。

没有CLPFD:

echo([], []).
echo([X|Xs], [X,X|Ys]):-
  echo(Xs, Ys).