問題タブ [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.
prolog - Prolog機能が含まれていますか?
私はProlog述語を作成しようとしていますiscontained/2
:指定された内にリストされている場合はiscontained(List, Search)
返され、そうでない場合は返されます。そして、それが入力された変数である場合、それはリスト内の各要素に等しいことを返すだけです。true.
Search
List
false.
例:
あなたがそれをするための迅速な方法を知らない限り、私は手を差し伸べることを求めないで、正しい方向に突き出す必要があります。どんな助けでもありがたいです、ありがとう。
prolog - リストを必要な長さに分割する
divide(L,Len,Slist)
リストLから割り当てられた長さLenのリストとSlistが統合できる場合に真になる述語を書こうとしていました。たとえば
そのような答えを与えるべきです
しかし、私はより良い方法を見つけることができませんでしたlength(X,Len), sublist(L,X).
が、動作が遅すぎます。除算述語はどのように見えるべきですか?
prolog - ルート全体を印刷する方法
go(a, d) など。ルートa、ルートb、ルートc、ルートdなどのルートも印刷したい
prolog - 言語からすべての単語を生成するProlog dcg
の言語を説明するプロローグに dcg 文法を書き込もうとしています
a^nb^n n>=0
"",ab,aabb,aaabbb itd
私が書いたものはすべて、
そして、私がやりたいことは単語が正しいかどうかをチェックすることだけである限り、それは良いことですが?-phrase(s,X)
、私の言語からすべての単語を生成するプロローグで dcg 文法はどのように見えるべきですか?
tree - リストするツリー(更新)
ツリーをリストに変更する方法について、別の投稿の誰かのコメントから提案を試しました。ただし、どこかに(または何か)宣言されていない変数があるため、リストの値は[5、2、6]ではなく[_G667、_G673、_G679]であり、これが正解です。私の知る限り、すべての操作は正しいです。
コードは次のとおりです。
私が使用したクエリは次のとおりです。
誰かが変数の問題を見ていますか?最初の行(Itemを含む)にあるのではないかと思いましたが、Itemをitemに変更すると、クエリはすぐにfalseを返します。
私はいくつかのPrologプログラムを書いただけなので、これはまだ私にとって新しい概念です。
prolog - DCGを決定論的に変更する
このグラマを決定論的に変更する方法
バックトラックを避けるためにカットをどこに置くべきかわかりません。
prolog - DCG(再び)セマンティックアクションでabstracツリーを作成する
これが木を表すいくつかのグラマです
ここで、括弧内の*
平均leaf
といくつかの木は、息子が括弧内の木であるという根を表します。そのグラマをdcgに書き直して、そのツリーのabstracツリーを作成するセマンティックアクションを追加する必要があります。また、アイデアleaf/0
や
ソースのnode/2
例として、感謝しています。node(node(leaf,leaf),node(leaf,leaf))
prolog - Prologを使用して言語ルールからデータモデルパスを取得しますか?
データウェアハウス用の半自然言語インターフェースを構築したいと思います。単純なデータモデルは、たとえば次のようになります。
そして、私はそのようなクエリを作成したいと思います:
ACME employees
、、Bugs Bunny salary
などACME department types
。
文法にない入力については、データベースを呼び出して、sayACME
をに解決しCompany
ます。
...そしてクエリを私のデータベース言語が理解できるパスに変えます:
[Company].departments.employees
、、。[Employee].salary
_[Company].departments.type
英語の文章を解析して正しいかどうかを言うときに、SWI-Prologを使用したことを覚えています。この場合、Prologはまだ道を進んでいますか?
ありがとう
prolog - リストリストのツリーパス
ツリーを取得してリストのリストを返す述語(Prolog)を作成したいのですが、各リストはツリーパスです。ツリーはtree(Root、LeftTree、RightTree)として定義されます。何か提案はありますか?
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ソリューションを望んでいます。
ありがとうございました。