2017-04-10 5 views
0

プロローグ予測を実装しようとしていましたが、(x、m)という特定のパターンがリストに存在するか、そのパターンの存在回数を数えます。パターンが存在した回数には決して答えません。なぜですか?プロローグ内のリストに特定のパターンが存在するかどうかをチェックする方法

私の試みでした:

certainP([_,m],RESULT,W):- 
    W is RESULT+1. 
    certainP([x,m|T],START,RESULT):- 
    RESULT is START+1, 
    START is RESULT, 
    certainP(T,START,RESULT). 
+1

どのようなクエリを使用していますか、それぞれどのような結果が期待できますか? –

+0

@ScottHunter私はどのようなクエリを使用しているのですか?どちらの方法でも、xの後ろにxが続き、リストの中に述語が来ると期待しています – marwagaser

+0

質問:あなたは 'certainP(')の後に何を入力しますか?そして何が起こると思いますか?*例*を与えてください –

答えて

0

これは、あなたが記述何をすべき:

certainP([],N,N). 
certainP([_],N,N). 
certainP([x,m|T],N,N2) :- 
    N1 is N+1, 
    certainP(T,N1,N2). 
certainP([_|T],N,N2) :- 
    certainP(T,N,N2). 

これは、中央の引数は、クエリの最初の数値を提供していることを前提としています。

関連する問題