【发布时间】:2020-04-29 02:45:41
【问题描述】:
我想要一个遍历列表列表并检查每个列表是否验证某些条件的谓词,以防列表验证条件,它将被添加到 ResultList(另一个列表列表)。我是这样写的:
mypredicate(ListOfLists, ReferenceList, ResultList) :-
mypredicate(ListOfLists, ReferenceList, ResultList, []),
mypredicate([H|T], ReferenceList, ResultList, Acc) :-
elementos_comuns(ReferenceList, H),
H \== ReferenceList,
append(Acc, H, ResultList),
T \== [],
mypredicate(T, ReferenceList, ResultList, ResultList).
如果“附加”上方的两行都返回 true,我只想追加,并且无论前 3 行发生什么,如果 T \== [],我希望它运行最后一行。
问题在于,当它到达 ListOfLists 的一个元素时,它不能验证这两个:
elementos_comuns(ReferenceList, H),
H \== ReferenceList,
整个事情都返回假。
我需要 ResultList 是一个列表列表,其中包含“ListOfList”中验证的列表
elementos_comuns(ReferenceList, H),
H \== ReferenceList,
我不知道该怎么做,感谢任何帮助。
【问题讨论】:
标签: prolog