我是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)将列表分解为Prefix
列表(可能包含9s),[9]
单元素列表和Suffix
列表(不包含9s),然后将Prefix
连接起来和Suffix
列表。编写一个谓词,该谓词在给定列表Prefix
的情况下发现Suffix
和L
。
[如果我们不做程序上的思考或按照“ CPU会花多少钱”的思路,发现decompose(List,Prefix,Suffix)
和Prefix
的谓词Suffix
可以写在一个子句中,这是纯逻辑的语句,使用append/2
和member/2
以及否定作为失败。
一个人只需要第二行来说明List
中没有9开头的情况。