問題タブ [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 投票する
3 に答える
114 参照

prolog - Prolog機能が含まれていますか?

私はProlog述語を作成しようとしていますiscontained/2:指定された内にリストされている場合はiscontained(List, Search)返され、そうでない場合は返されます。そして、それが入力された変数である場合、それはリスト内の各要素に等しいことを返すだけです。true.SearchListfalse.

例:

あなたがそれをするための迅速な方法を知らない限り、私は手を差し伸べることを求めないで、正しい方向に突き出す必要があります。どんな助けでもありがたいです、ありがとう。

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

prolog - リストを必要な長さに分割する

divide(L,Len,Slist)リストLから割り当てられた長さLenのリストとSlistが統合できる場合に真になる述語を書こうとしていました。たとえば

そのような答えを与えるべきです

しかし、私はより良い方法を見つけることができませんでしたlength(X,Len), sublist(L,X).が、動作が遅すぎます。除算述語はどのように見えるべきですか?

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

prolog - ルート全体を印刷する方法

go(a, d) など。ルートa、ルートb、ルートc、ルートdなどのルートも印刷したい

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

prolog - 言語からすべての単語を生成するProlog dcg

の言語を説明するプロローグに dcg 文法を書き込もうとしています
a^nb^n n>=0
"",ab,aabb,aaabbb itd

私が書いたものはすべて、

そして、私がやりたいことは単語が正しいかどうかをチェックすることだけである限り、それは良いことですが?-phrase(s,X)、私の言語からすべての単語を生成するプロローグで dcg 文法はどのように見えるべきですか?

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

tree - リストするツリー(更新)

ツリーをリストに変更する方法について、別の投稿の誰かのコメントから提案を試しました。ただし、どこかに(または何か)宣言されていない変数があるため、リストの値は[5、2、6]ではなく[_G667、_G673、_G679]であり、これが正解です。私の知る限り、すべての操作は正しいです。

コードは次のとおりです。

私が使用したクエリは次のとおりです。

誰かが変数の問題を見ていますか?最初の行(Itemを含む)にあるのではないかと思いましたが、Itemをitemに変更すると、クエリはすぐにfalseを返します。

私はいくつかのPrologプログラムを書いただけなので、これはまだ私にとって新しい概念です。

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

prolog - DCGを決定論的に変更する

このグラマを決定論的に変更する方法

バックトラックを避けるためにカットをどこに置くべきかわかりません。

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

prolog - DCG(再び)セマンティックアクションでabstracツリーを作成する

これが木を表すいくつかのグラマです

ここで、括弧内の*平均leafといくつかの木は、息子が括弧内の木であるという根を表します。そのグラマをdcgに書き直して、そのツリーのabstracツリーを作成するセマンティックアクションを追加する必要があります。また、アイデアleaf/0や ソースのnode/2例として、感謝しています。node(node(leaf,leaf),node(leaf,leaf))

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

prolog - Prologを使用して言語ルールからデータモデルパスを取得しますか?

データウェアハウス用の半自然言語インターフェースを構築したいと思います。単純なデータモデルは、たとえば次のようになります。

そして、私はそのようなクエリを作成したいと思います:

ACME employees、、Bugs Bunny salaryなどACME department types

文法にない入力については、データベースを呼び出して、sayACMEをに解決しCompanyます。

...そしてクエリを私のデータベース言語が理解できるパスに変えます:

[Company].departments.employees、、。[Employee].salary_[Company].departments.type

英語の文章を解析して正しいかどうかを言うときに、SWI-Prologを使用したことを覚えています。この場合、Prologはまだ道を進んでいますか?

ありがとう

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

prolog - リストリストのツリーパス

ツリーを取得してリストのリストを返す述語(Prolog)を作成したいのですが、各リストはツリーパスです。ツリーはtree(Root、LeftTree、RightTree)として定義されます。何か提案はありますか?

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

prolog - 用語をPrologの変数に置き換えます

私はPrologにDCGを持っており、次のようにクエリできます。

q(Tree, [name, of, company], []).

クエリを解析するためにたどったパスを示す応答を取得します。

Tree = q(['company (Class)', 'name (Attribute)'])

次に、次のようなクエリを実行します。

q(Tree, [name, of, acme], []).

用語と一致しない場合は、次acmeのような変数を作成したいと思いますAcme

私はSWI-Prologを使用していて、別の言語からクエリを実行しています。そのため、クエリはすべて小文字です。私の他のオプションは、すべての有効な用語のレキシコンを作成し、クエリ内のすべての不明なものを変数に置き換えることですが、Prologソリューションを望んでいます。

ありがとうございました。