从SWI Prolog中的列表中删除

从SWI Prolog中的列表中删除,prolog,Prolog,我是SWI Prolog的初学者,我有一个问题。请帮帮我。 如何从列表中删除最后出现的9 示例: ?- delete([9,9,9]) [9,9] ?- delete([9,4,1,2,3,9,53,2,9,2]) [9,4,1,2,3,9,53,2,2] 您必须1)将列表分解为前缀列表(可能包含9个)、[9]一个元素列表和后缀列表(不包含9个),然后将前缀和后缀列表连接起来。编写一个谓词,在给定的列表L中查找前缀和后缀 如果我们不按程序或按照“这将花费多少CPU”的思路思考,谓词分解(列表、

我是SWI Prolog的初学者,我有一个问题。请帮帮我。 如何从列表中删除最后出现的9

示例:

?- delete([9,9,9])
[9,9]
?- delete([9,4,1,2,3,9,53,2,9,2])
[9,4,1,2,3,9,53,2,2]
您必须1)将列表分解为
前缀
列表(可能包含9个)、
[9]
一个元素列表和
后缀
列表(不包含9个),然后将
前缀
后缀
列表连接起来。编写一个谓词,在给定的列表
L
中查找
前缀和
后缀

如果我们不按程序或按照“这将花费多少CPU”的思路思考,谓词
分解(列表、前缀、后缀)
,它发现
前缀和
后缀可以写在一个子句中,一个纯逻辑语句,使用
append/2
member/2
和否定作为失败


我们只需要第二行来说明
列表中没有9的情况。

首先,您需要第二个参数!