問題タブ [failure-slice]
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 の再帰は内部からどのように機能しますか。一例
要素のリストをセットに変換する小さなスクリプトを用意しました。たとえば、リスト [1,1,2,3] -> [1,2,3] を設定します。手順の中で何が起こっているのか、順を追って説明してもらえますか? [1,1,2,3] -> [1,2,3] の例を使用していただけますか?
prolog - プロローグにおける再帰の計算量
私は再帰を持っています:
要素のリストをセットに変換します。たとえば、[1,1,2,3] -> [1,2,3]。クエリを入力するとlist_to_set([1,1,2,3],X).
、結果はX = (1,2,3)
であり、セットを見つけることの複雑さは ですO(n)
。;
これで、他に考えられる答えがないことを確認するために、alternative を入力できます。明らかに何もなく、スクリプトは を返しfalse
ます。私の質問は、その 2 回目のスクリプト実行の計算上の複雑さはどのくらいですか? またその理由は?
prolog - Prolog無限ループ
これは、誰がjohnと互換性があるかを調べる必要があるプログラムです。私はPrologを初めて使用します。Prologに知らせるために例えば。met(X、Y)= met(Y、X)たくさんのコードが書かれています。クエリを開始すると
それは無限のループに入ります...
ソースコード:
私はこれまで多くのことを研究してきましたが、何が問題で、どのようにそれを修正するのかまだわかりません。私を助けてくれるといいですね。
prolog - Prolog再帰手続きの説明
可能であれば、誰かにこの手順を説明してもらいたいです (「learn prolog now」という本から)。2 つの数字を取り、それらを加算します。
原則として理解していますが、いくつか問題があります。クエリを発行するとしましょう
結果は次のとおりです。
ステップ 1 はルール 2 との一致です。ここで、X は s(0) になり、Y は s(0) のままです。ただし、Z (本によると) は s(_G648)、またはその中にインスタンス化されていない変数を持つ s() になります。どうしてこれなの?
最後のステップで、最初のルールが一致し、再帰が終了します。ここで、Y の内容は、どういうわけか、Z のインスタンス化されていない部分になってしまいます! 非常に紛らわしいので、わかりやすい英語の説明が必要です。
prolog - English constraint free grammar prolog
I ran into an infinite recursion problem while trying to implement a very simple constraint free grammar in prolog.
Here are my rules: (vp -> verb phrase, np -> noun phrase, ap -> adj phrase, pp -> prep phrase)
The problem im running into is that the rule for ap can produce arbitrarily long strings of adjectives, so at some point, i get stuck trying to satisfy the query by trying all these infinite possibilities.
For example, the following query will never produce S = [put, the, red, block, on, the, green, block] because it will first expand the adjective phrase on the left "red" to infinite possibilities before ever trying on the right.
prolog - 優れた Prolog コードの特徴は?
優れた Prolog を作成するためにマスターしなければならない設計ヒューリスティックは何ですか? 経験豊富なプログラマーが Prolog に習熟するには、約 2 年かかると聞きました。再帰を効果的に使用することもその一部ですが、それは比較的小さなハードルのようです。プログラマーをこれほどまでに悩ませているのは、一体何なのでしょうか? その品質を判断するには、サンプル コードで何を探す必要がありますか?
prolog - 目標に貢献していない事実を見つける方法
学生プログラムが特定の目標を達成できるかどうかを確認できるプログラムを作成しようとしています。私はその部分を行うことができます。ここで、学生プログラムに実際に不要なコードが含まれているかどうかを確認したいと思います。このケースを解決するには、学生プログラムに特定の目標に貢献しない事実が含まれているかどうかを知る必要があると思います。しかし、目標に貢献しない事実を見つける方法がわかりません。
理解しやすくするために、より単純な例を考えてみましょう。この例では、指定された目標は次のとおりです。ジョンはトミーの祖父ですか?
実際には、次の事実によってのみ目標を達成できます。
そして、私が知りたいのは、実際にはどの事実が目標に貢献していないかということです. 答えは、次のすべての事実になります。
どんな助けでも本当に感謝しています。ありがとう
prolog - 無限のサクセス ツリーか、そうでないか。
私は次のプログラムを与えられています:
次のクエリにプルーフ ツリー アルゴリズムを適用する場合は、次のように尋ねました。
証明木は無限の成功木ですか、それとも無限の失敗木ですか?
私が見ているように、ツリーの構築中に、パスのルール 1 を何度も適用し、無限のツリーを作成し、パスのルール 2 に到達することはありません..
したがって、無限の障害ツリーが作成されます。しかし、私が持っている解決策は、それが無限の成功の木であると言います。私の質問は、私は正しいですか、それとも私の教授は正しいですか? :]