問題タブ [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 に答える
1069 参照

prolog - 算術計算機

私はかなり新しいプロローグで助けが必要です。私は小さな算術計算機を設計しなければなりません。評価される式は、たとえば次のようにリストとして表されます。

たとえば、リストを変換するためにparseと呼ばれる2つの述語を設計することで、これを実行しようとしています。

もう 1 つは新しい式を評価します。

最初の部分に問題があります。コードを手伝ってくれる人はいますか?

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

prolog - プロローグ: DCG パーサーを使用して if - then - else ステートメントを解析する方法

「if-then-else」ステートメントを解析するために Prolog DCG を使用することは可能ですか? もしそうなら、特定の「if」「then」「else」文字列に一致しなければならないとすると、そのようなステートメントをどのように解析するのでしょうか。これが不可能な場合、私の代替手段は何ですか?

0 投票する
7 に答える
35865 参照

list - Prolog でリストを平坦化する

Prolog を使って数日しか経っていません。私はいくつかのことを理解していますが、これは本当に私を混乱させます。

リストを受け取ってそれを平坦化する関数を書くとします。

この関数は、リストの内部構造を取り出します。

これは私がこれまでに持っているものです:

今、これは私が呼び出すときに動作します:

しかし、入力したリストがすでにフラット化されているかどうかを確認するために呼び出すと、次falseの代わりにが返されtrueます。

一方では機能するのに、他方では機能しないのはなぜですか? 非常に単純なものが欠けているように感じます。

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

prolog - プロローグ述語の呼び出し

次のチュートリアル: http://www.csupomona.edu/~jrfisher/www/prolog_tutorial/7_3.html

次の部分があります。

c(F,X,[]) と q(F,X,[]) の部分については、私が見たものと一致しないように見えるため、非常に混乱しています。これらのパラメーターは q には意味がないようです。ここで何が起こっているのかを理解するのを手伝ってください。

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

prolog - プロローグ:述語「名前」を使用して音節の単語を分割する

ユーザーから単語を読み込んでから、母音-子音-母音または母音-子音-子音-母音の2つのルールのいずれかに基づいて音節に分割する必要があります。

述語「name」が機能しないようです。リストではなく、出力に単語を含める必要があり
ます。助けていただけませんか。

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

prolog - DCG で型を連結する

プロローグを使用して、音楽のコンテキスト用の単純な DCG を開発しようとしています。

私は次のように音符を定義しました。

上記の 'ton' および 'sup' 引数は、音符が属するコードに関連しています。ノート a、d、および f は * ton * ic コードに属し、ノート b、e、および g は * sup *ertonic コードに属します (ニ長調の調)。

ここで、2 つの引数 (1 つは和音用、もう 1 つは音符の長さ) を取る「音符」記号をさらに導入したいと思います。例えば、

私の問題は、note(X),[2] がリスト [a,2] であるという事実にあります。[a2] の形式で必要です。

変数 X を使用しないことで、この問題を回避することができます。

しかし、私の表現には 7 つの異なるコードと 7 つの異なる音符の長さがあるため、これには多くの不要な (私が思うに) コードが含まれます。

note(X) と整数 2 を連結する方法がわかりません。また、これをどこで行うべきかもわかりません。書き換え規則の右側にあるものを連結することは可能ですか?

ありがとう、

ショーン

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

if-statement - テキストストリーミングで最大の価値を見つける

テキストの最大値を認識できるプログラムが必要です。最初にテキストファイルをストリーミングし、

charごとにinfosを取得しますが、正方形かどうかに関係なく計算と結果を取得できません。正方形の場合は、sample.txtの座標に数値を入力します。

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

prolog - Prolog ファンクターを差分リスト付きのファンクターに変換する

Prolog (SWI) の宿題に取り組んでいますが、これを行う方法がわかりません。

私はファンクターを持っています:

これは、与えられたリストが回文であるかどうかを示します。

宿題として、差分リストを使用する場合と使用しpalindrome/2ない場合のファンクターを作成する必要があります。append/3

差分リストが の形式であることは知っていますが、[Y|X]-Xこれを使用する方法と、これが追加ファンクターをどのように置き換えることができるかがわかりません。

誰かが私にこれを説明してもらえますか?

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

list - プロローグリスト高原

いくつかの簡単な演習を実行しようとして、プロローグを紹介されたばかりですが、私はこれに固執しています。入力リストのすべてのサブリストを出力するプログラムを作成しようとしています。各サブリストの長さは1より大きいため、より大きなサブリストに拡張することはできません。また、サブリストのリストの開始位置も出力されます。したがって、サンプル出力は次のようになります。

私はまだ宣言的なこと全体にかなり混乱していて、命令モードから切り替えるのに多くの問題を抱えています。私は自分のプログラムに次のようなことをさせたいと思っています

いくつかの理由で私が言えることから、これは機能していません。'count'をリセットしないので、すべてのサブリストの値を合計すると、多分?これを回避する方法はありますか?私のベースケースも私が望むものではないかもしれません-私はそれが本当にどうあるべきかわからないだけですか?私はおそらく他のものも見逃しています...どんな助けでも大歓迎です!:) ありがとう!

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

list - リストのリストから要素を取得する

Prologのリストのリストからすべての要素を取得することは可能ですか?

次のようなもの:getElements([[[a、b、[c]]、d、e]、f、g、[h、[i、j]]]、S)があり、結果は次のようになります:S = [a 、b、c、d、e、f、g、h、i、j]..。

手伝ってくれてありがとう。