我对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),!.
答案 0 :(得分:1)
修复:
guu([H|T],[H|T]):-!.