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

string - 文字のリストからPrologの文字列または用語に変換できますか?

私が使う

ファイルから行を読み取るには..最初に行を読み取り、それをプロローグの用語に割り当てる方法はありますか?そうでなければ、私はなんとか行を読んでこの文字リストに入れることができました..今この文字リストにはスペースが含まれています..これは悪いです..それを処理できるようにプロローグの用語または文字列に変換したいですより簡単な..スペースをアトムにすることはできないので、問題があります..

私は助けに感謝します!!

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

string - Prolog : 文字列から余分なスペースを削除する

Prolog のまったくの初心者。これは私を少しイライラさせます。以下の私の「解決策」は、Prologを手続き型にしようとしている...

これにより、スペースが削除されるか、必要に応じてコンマの後にスペースが挿入されます。つまり、ピリオドが検出されるまでです。

目標:コンマの前の空白も削除する方法を知りたいです。

以下は機能しますが、非常に多くのレベル、特に「出口」で非常に間違っています!

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

prolog - PrologDCGに関する問題/演習が必要

この概念をよりよく理解できるように、DCGに関連するプロローグの問題/演習のリストをどこで見つけることができるか知っていますか?

私はそれに関するいくつかの仕様を読みましたが、それを学ぶための最良の方法はそれを使って練習することです。

ありがとう!

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

prolog - 質問-プロローグの形式言語

この形式に一致するすべてのリストを認識するDCGを構築しようとしています:a^n b^2m c^2m d^n
私は次のルールを書きました:
s --> [].
s --> ad.
ad --> a, ad, d.
ad --> bc.
bc --> b, b, bc, c, c.
bc --> [].
a --> [a].
b --> [b].
c --> [c].
d --> [d].

リストのように、これらの仕様で文字列を評価しようとすると、[a,b,b,c,c,d]機能します。しかし、phrase(s, X)この文法によって返される可能性のあるすべての文字列を確認できるようにクエリを評価しようとすると、無限にループします。

DCGの構築方法に何か問題がありますか?

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

prolog - Prolog DCG:プログラミング表記から論理表記への変換

私はこの表記から変換しようとしています:

標準の論理表記、つまり次のようなものにand(A,B), or(A,B), neg(A)...

DCGを使うのがいいと思いました(DCGを練習したいのでこの質問をしました)。変換が機能しない理由はありますか?これまでのところ、変数を取得するときの論理和とケースを記述しました。私が欲しい答えはor(atom(X)、atom(Y))でなければなりません。

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

prolog - プロローグ: DCGS - 数字を英語に変換する

PrologでDCGを使って練習しています。123 のような整数を取り、それを [1,2,3] などのリストに「展開」します。次に、DCG ルールを使用して、1-2-3 の出力を取得します。これまでのところ、[1] などの 1 つの整数のリストを 1 つに変換できますが、リストに関してはどうすればよいかわかりません。これは私が実践していることなので、実際には可能な限りDCGを使用したいと考えています。これが私の現在のコードです:

DCGを使用せずに考えられる解決策は、以前に書いたものですが、DCGを使用してそれを書く方法を考えています。

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

prolog - プロローグ:単純なDCG a ^ nb ^ n

私はPrologでDCGを使用することに慣れようとして失敗しました。

言語a^nb ^ nを受け入れるための一連の文法規則を定義するにはどうすればよいですか?

例:aaaabbbbまたはabなど..

ありがとう :)。

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

prolog - Prolog で文字列のリストを連結する

Lisp から C へのトランスレータを書いていますが、文字列の処理に問題があります。これは、単項 Lisp 関数を C の等価関数に変換するコードです。

ここで、任意の数の関数を読み取り、それらを 1 つの文字列として返したいと考えています。上記funsは私が思いつくことができる最高のものですが、次のように機能します。

私はこのようなものが欲しいのですが:

s と main() のswritef間の完全なプログラムにうまく入ることができるように。#include別の解決策は、最上位レベルのトランスレータを変更してリストを処理することです。現在、次のようになっています。

これら2つのいずれかを行うにはどうすればよいですか?SWI プロローグを使用しています。

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

regex - Prolog で書かれた正規表現パーサー

私はこの宿題の問題で数時間頭を壁にぶつけていました。Prolog で正規表現を解析する必要があります。ほとんどの場合、私が持っている述語は機能しますが、いくつかの正規表現と文字列の組み合わせにより、SWI-Prolog のスタック スペースが不足してしまいます。2 つの Regex 文字列の組み合わせのサンプルを次に示します。1 つは機能し、もう 1 つは機能しません。

最初のものは機能し、2 つ目はスタックを使い果たします。

私が使用している述語は次のとおりです。

正しく機能させるためにどのような変更を加える必要があるのか​​ わかりませんが、他に何をすべきかわかりません。

また、List :- append(List1, List2, List) を [H|T] に変更しても、例の 1 つで true と評価されません。

0 投票する
5 に答える
29534 参照

io - Prologでファイルを1行ずつ読む

プレーンテキストファイルを読み取り、各行に述語を適用したいと思います(述語にwriteは出力を行うものが含まれています)。どうすればいいですか?