0
my_list([hello,hello,hello])
counthowmany(_, [], 0) :- !.
counthowmany(X, [X|Q], N) :- !, counthowmany(X, Q, N1), N is N1+1.
counthowmany(X, [_|Q], N) :- counthowmany(X, Q, N).
在上面的代码,如果编译缓冲区之后问的Prolog我怎么能叫Prolog的规则,同时要求序言
my_list(L),counthowmany(hello,L,N).
这个问题,那么它给我的问候数量.....
现在如果我修改以下方式
my_list([hello,hello,hello])
counthowmany(_, [], 0) :- !.
counthowmany(X, [X|Q], N) :- !, counthowmany(X, Q, N1), N is N1+1.
counthowmany(X, [_|Q], N) :- counthowmany(X, Q, N).
numberofhello :- my_list(L), counthowmany(hello,L,N).
% i. e. I want to insert the question in a rule
和编译缓冲后的代码(虽然我得到一个单变量警告)如果我问的Prolog
numberofhello.
它只是给我“真”,我不明白你好的数量。
[如何在prolog中的谓词中传递列表]的可能重复(http://stackoverflow.com/questions/21971270/how-to-pass-a-list-in-a-predicate-in-prolog ) – false