Prolog没有以我想要/需要的方式显示输出

时间:2019-05-08 12:21:59

标签: list prolog

我对Prolog还是陌生的,需要解决任务。因此,我需要比较两个列表,并检查它们是否具有相同的长度并且包含奇数个元素。我只允许使用以下内置运算符:!并失败。

到目前为止,代码仍然有效,但是当我想从Prolog中获得以下信息时:

guu([a,b,c],X).

我明白了:

X = [_900, _906, _912] 

但是我想要的是这个

X = [a, b, c]

或:

X = [a , a, a]

到目前为止,我的代码:

guu([_],[_]):- !.
guu([_,_],[_,_]):- fail, !.
guu([],[]):- fail, !.
guu([],[_]):- fail, !.
guu([_],[]):- fail, !.
guu([_,_|Tail1], [_,_|Tail2]):- guu(Tail1,Tail2).

我想我用“ _”运算符弄乱了,但是idk:/

修复:

guu([H|T],[H|T]):-!. 
guu([_],[_]):- !.
guu([_,_],[_,_]):- fail, !.
guu([],[]):- fail, !.
guu([],[_]):- fail, !.
guu([_],[]):- fail, !.
guu([_,_|Tail1], [_,_|Tail2]):- guu(Tail1,Tail2),!.

1 个答案:

答案 0 :(得分:1)

修复:

guu([H|T],[H|T]):-!.