我试图定义一个谓词count(Word,List,N)
,当N为时,该谓词为真
单词Word出现在列表列表中的次数。例如
count(my, [the, friend, of, my, enemy, is, not, my,enemy,nor,my,friend], N)
对于N = 3,应为真。
以下是我到目前为止所尝试的内容:
count(Word, [], 0).
count(Word, [Word|Tail], N) :-
count(Word, Tail, NofTail), N is 1 + NofTail.
count(Word, [OtherWord|Tail], NofTail) :-
OtherWord \= Word, count(Word, Tail, NofTail).
当我在RPEL中尝试时:
?- count(s,[s,z],1).
true ;
false. %note here
?- count(s, [s,s,s,z], 3).
true ;
false. %note here
?- count(s, [s,s,s,z], 1).
false.
我做对了吗?如果没有,为什么?如何解决?