prolog - 如何比较序言中列表的元素
问题描述
您如何比较两个列表以查看它们是否不同
?- compare_lists(X,Y).
解决方案
如下呢?
compare_list([], []).
compare_list([H1 | T1], [H2 | T2]) :-
H1 \= H2,
compare_list(T1, T2).
这要求两个列表具有相同的长度才能返回 true;如果您也想从不同长度的列表中获得 true,则必须将递归的基本情况加倍,所以改为
compare_list([], []).
你可以写
compare_list([], _).
compare_list(_, []).
推荐阅读
- sql-server - 在 SQL 中使用 CURSOR 从其他表获取值时更新一个表的记录
- google-cloud-storage - 删除文件夹时,无法使用版本控制在 GCS 中恢复文件
- c++11 - 为什么外部库在cmake中添加编译器标志-std=gnuc++11
- java - 编译在 Eclipse 中有效,但在 maven 中无效
- javascript - 当 JavaScript 对象中的键在方括号中时,它究竟表示什么
- solr - 如何在solr的子文档中添加相同的字段
- c# - 从 AJAX 调用时,列表似乎为空
- ruby - 使用 Nokogiri 和 Xpath 按属性值过滤 XML 元素
- google-apps-script - Google Sheet onEdit(e) 有权限问题
- kdb - 检查给定日期是否是该月的最后一天