我们必须编写一个Prolog谓词neighbors(X,Y,L)
,如果L
是一个列表,X
并且Y
是列表中的邻居元素,则该谓词为true 。到目前为止,我写道:
neighbors(X,X,[X]).
neighbors(X,Y,[X,Y|R]):- neighbors(X,Y,R).
neighbors(X,Y,[Y,X|R]):- neighbors(X,Y,R).`
但是[]
无论输入如何,输出总是会(显然)带括号(“ ”)。那么,你们可以给我一些有关如何改进此谓词的建议吗?我们最近开始使用Prolog,所以我仍然需要一些实践。
您应该使用append:
neighbors(X,X,[X]).
neighbors(X,Y,L) :-
append(_, [X,Y|_], L)
; append(_, [Y,X|_], L).
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句