問題タブ [dcg]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
366 参照

prolog - Prologでの定式化

私は現在、Prologで解決したい次の問題を抱えています。これは簡単な例であり、Java /C/その他で簡単に解決できます。私の問題は、Javaの考え方に縛られすぎて、Prologの論理力を利用する方法で実際に問題を定式化できないと信じていることです。

問題は..

左または右を指す6つの矢印のセットがあります。それらが次の開始構成にあると仮定しましょう。

これで、2つの矢印が隣り合っている限り、それらを切り替えることができます。私の目標は、どの一連のアクションによって矢印の初期構成が次のようになるかを発見することです。

問題を定式化する私の最初の試みは..

これは、矢印の初期構成が何であるかをPrologに伝えます。しかし、どうすれば追加のロジックを挿入できますか?たとえば、どのように実装しswitchArrows(Index)ますか?Prologでこのような初期条件を述べるのは正しいですか?後で、たとえばarrow_a位置6に設定しようとすると、干渉しませんatPosition(6, arrow_a)か?

0 投票する
3 に答える
626 参照

prolog - Prolog の述語からリストを「返す」

私は現在このアルゴリズムを持っており、正常に動作します。私はこのように実行しています:

Pathの値は

これは起こるべきことではありません。パスには、アルゴリズムが通過した一連の「状態」が含まれている必要があります。何が問題なのですか?

0 投票する
1 に答える
2761 参照

prolog - Prolog - 命題論理の式

特定の入力が数式を表しているかどうかを検証するために、述語を作成しようとしています。

p、q、r、s、t などの命題アトムにのみ使用することが許可されています。テストする式は次のとおりです。

wff与えられた構造が式の場合に true を返し、それ以外の場合に false を返す述語を作成しました。また、数式内で変数を使用する必要はありません。以下で説明するように、命題アトムのみを使用します。

このようなテストを導入する wff(and(q, imp(or(p, q), neg(p)))).と、呼び出しは と の両方の値を返しtrueますfalse。なぜこのようなことが起こるのか教えてください。

0 投票する
3 に答える
10555 参照

prolog - swi-prolog で文を分割する方法

Win XPでSWI-Prologを試しています。Prolog の文を別々のアトムに分割する方法を理解しようとしています。

例: 次のような文があるとします。

「これは文字列です」
個々の単語を変数に格納する方法はありますか?

お気に入り :

X = この
Y = は
....
などです。

誰でもこれがどのように機能するか説明できますか?

ありがとう。

0 投票する
1 に答える
841 参照

prolog - プロローグのDCGイラストお願いします

現在、Prolog で DCG を使用して XML ファイルを解析しています。次のような単純な XML を解析できる次のコード スニペットを取得できました。

DCG は次のように定義されます。

この場合、DCGがどのように機能するかを誰かが説明してくれますか? DCG の引数を理解するのに本当に苦労しています (例: [E] in xml([E]); [E|L] in xml([E|L]). ) ありがとうございます!

0 投票する
1 に答える
261 参照

prolog - どの DCG ルールを追加する必要がありますか?

さて、私はプロローグを使用して単純な xml パーサーを構築しています。そして、次のxmlファイルがあります。

Prolog では、次の DCG ルールを使用します。

そのため、ルールは「p1:1 in main:1」、「x:int」、「main:1」などを処理できません。私は実際にそれらを「p1」、「x」、「main」に変更しようとしましたが、パーサーは完全に正常に動作します。パーサーが不規則なトークンを処理できるようにするには、どのようなルールを追加すればよいでしょうか?

解析ツリーは次のようになります。

以下は私が得るものです:

0 投票する
2 に答える
838 参照

prolog - プロローグで角括弧を書く方法は?

これは奇妙に聞こえるかもしれませんが、パーサーで使用されているので、フォームの何かを解析できるようにしたいと思います

foo [bar]

したがって、これはリストで次のように表されます。

[foo、[、bar、[]たぶんそのような単語はDCGで次のように書かれるでしょう:

問題は、角括弧が予約文字であるということです。それで、これをプロローグでどのように表すことができますか?

0 投票する
2 に答える
270 参照

prolog - Prolog 構造の検索

多くの接続詞 (より大きな問題の一部) から構成される数式に興味があります。次のようなプログラムを書きたいと思います。

:- get_params(conj(conj(a,b),c),X)

そして、接続詞のすべてのパラメータのリストを返しますX=[a,b,c]。現時点でできること

:- get_params(conj(a,b),X)取得するためX=[a,b]

単純な Prolog パターン マッチングを使用しますが、次のようなことを行うにはどうすればよいでしょうか。

:- get_params(conj(conj(a,b),c),X)取得するためX=[a,b,c]

それは本当に簡単に思えますが、私は一日中苦労してきました!

0 投票する
4 に答える
4238 参照

list - gnu Prolog パワーセットの変更

だから私はパワーセットのためにこれを手に入れました:

これにより、リストのすべてのセットが生成されます。すべてのセットをリスト順に生成することは可能ですか?

例:

私は手に入れたい

[a,c]これらのサブセットは左から始まり、右に進むサブセットであるため、このサブセットのリストには no がないことに注意してください。

追加と再帰の組み合わせを使用してみましたが、思ったようにうまくいきませんでした。この時点で少し困惑。

ありがとう。

0 投票する
2 に答える
2075 参照

parsing - PrologのDCG—文字列

私はPrologの組み込みDCG機能を使用してLispからCへのトランスレータを書いています。これが私が算術を扱う方法です:

現在のように、ネストされた式は処理されません。これが私がうまくいくと思ったものです:

しかし、私はこれを取得しています:

どうすればそれを機能させることができますか?