答案中的Prolog奇怪的省略号

时间:2019-06-02 11:57:45

标签: prolog prolog-toplevel

我想做的代码是关于我们的,我们有一个包含一些元素的列表,我们有一个元素称为Element1,还有第二个元素称为Element2

这样的想法是,在列表中的每个Element1后面插入一个Element2

因此我们可以称谓语insert(L,E1,E2,NL):如果NL是在每个E2元素后面插入E1元素的列表,则为true。

这是我的代码:

insert([],_,_,[]).
insert([C|R],E1,E2,NL):-
    C\==E1,
    !,
    insert(R,E1,E2,NNL),
    NL = [C|NNL].

insert([E1|R],E1,E2,NL):-
    insert(R,E1,E2,NNL),
    NL = [E1,E2|NNL].

问题是,这个答案是否应咨询

insert([a,b,c,d,a,e,f,a,g],a,1,L).

给我这个:

L = [a, 1, b, c, d, a, 1, e, f|...].

我不知道他们为什么要放那个...

答案应该是:

L = [a, 1, b, c, d, a, 1, e, f, a, 1, g]

我正在使用SWI-Prolog-Editor

0 个答案:

没有答案