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