prolog - 为什么在尝试从列表中删除双打时出现存在错误?
问题描述
为什么我在这里遇到存在错误,特别是:
uncaught exception: error(existence_error(procedure,list_append/2),noDoubles/2)
我想从列表中删除双打,我尝试使用 prolog 中的“if”。
list_append(X,[],[X]).
list_append(X,L1,[X|L1]).
noDoubles([X],[X]).
noDoubles([H|T],L1):- (member(H,T) -> noDoubles(T,L1);(list_append(H,L1),noDoubles(T,L1))).
我有序言 1.4.4
解决方案
您已经使用 arity 3 定义了 list_append,并且您正在使用 arity 2 调用 list_append 谓词。
推荐阅读
- python - 在 python 中展平 JSON 文件
- angular - CustomValidator 只调用一次
- java - 使用流的地图收集产生奇怪的编译错误
- javascript - 将 RGB 颜色转换为 XY
- apache-spark - StreamingQueryException:文本数据源仅支持单列
- java - java.sql.SQLException:调用中的参数无效:对用户定义类型和 REF 类型使用 setNull
- android - 即使项目中没有包含其他firebase项目的数据,如何检索数据?
- postgresql - postgresql容器的数据保存在哪里,还有容器的位置在哪里?
- javascript - 如何在jquery数据表中获取多个复选框选中的值
- reactjs - React 组件在调整大小/重新渲染时会重复,即使它们具有唯一的键