prolog-findall

    0

    2答えて

    findall/3の呼び出しがfalseに評価されると、グラフを検索できるようにするプログラムを作成していますが、後続ノードのリストを返す関数が失敗しています。 find_successors関数の外側でfindall関数を試すと、完璧に機能しますが、何らかの理由でfind_successors関数の内部で単にfalseを読み取るだけです。グラフィカルなデバッガを使って、すべてのソリューションを見

    2

    1答えて

    Prologで作成したルールの解のリストを取得したいと思います。 しかし、findall述部は1つの変数でしか動作しないように見えます。 誰もこの明らかな制限を回避する方法を提案できますか? マイルール beat(P,M,E) 私が欲しいもの L = [[P,M],[P,M],................] 私は今、何を得る L = [P,P,P,P,.........] または

    7

    4答えて

    私はPrologの組み込み関数を使わずにPrologでfindallのバージョンを実装することを任されています。 私は私がこれまで持っていることであるリスト内のすべての直接の子孫のツリーを検索し、結果を返すために parent(a, b). parent(b, c). parent(b, d). parent(e, d). をしようとしている: find(X, L) :- find2(X

    6

    2答えて

    I'vは、その例のような全ての組み合わせを見つけ述語を実装するためにいくつかの機能を試してみました: List = [[1, 2], [1, 2, 3]] これらを、 Comb = [[1,1],[1,2],[1,3],[2,1],[2,2],[2,3]] を出力する必要がありますが、すべてのソリューションは、私は私の仕事で使用したくないfindallを使用していたことがわかりました。 f

    3

    1答えて

    の内側に私はこれを書きたいと思います: paths(Result) :- findall(B, f(B) , Result). f(B) :- f1(B), f2(B). をちょうど1行で。私は目標文で表現する「AND」する方法がわからない paths(Result) :- findall(B, f1(B) AND f2(B), Result).

    5

    1答えて

    私はFoxとGeeseタイプのゲームにAIを書いています。私の述語の1つは、次のようになります。 moveFox(+PrevState, -NextState, -PegList, +VisitedStates, -NewVisitedStates) これはゲームの状態を取り、キツネと一緒に動きます。結果の状態はNextStateで統一され、実際の移動はPegListで統一されます。すべてが期