首页 > 解决方案 > 如何比较序言中列表的元素

问题描述

您如何比较两个列表以查看它们是否不同

?- compare_lists(X,Y).  

标签: prolog

解决方案


如下呢?

compare_list([], []).

compare_list([H1 | T1], [H2 | T2]) :-
  H1 \= H2,
  compare_list(T1, T2).

这要求两个列表具有相同的长度才能返回 true;如果您也想从不同长度的列表中获得 true,则必须将递归的基本情况加倍,所以改为

compare_list([], []).

你可以写

compare_list([], _).

compare_list(_, []).

推荐阅读