問題タブ [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 - プロローグ終了ドメイン: どの質問が有限数の回答を返すかを知るにはどうすればよいですか?
次のようなリストを連結するプロローグ プログラムがあるとします。
どの質問が有限数の回答を返すかを知るにはどうすればよいですか? たとえば、
有限解セットを返します:
質問をしながら
解の無限セットを返します。
など (基本的に、[1,2,3] で終わる可能性のあるすべてのリスト。
では、論理プログラムでどの質問が終了するか、または終了しないかをどのように判断できますか?
list - リストの末尾から最大の整数を見つけるプロローグ
リストの先頭から、または末尾から、リスト内の最大の整数を見つける必要があります。先頭から最大のものを見つけることができるプログラムを既に作成しましたが、末尾からそれを行うには助けが必要です。
これが私がこれまでに持っているものです:
これは先頭から最大の整数を見つけることに注意してください。末尾から作業する必要があります。助けてくれてありがとう。
prolog - プロローグ - ルールは正しいが、想定どおりに出力されない?
ヒント
4人のゲスト(マスタード大佐、プラム教授、スカーレット嬢、グリーンさん)がボディ氏の家でのディナーパーティーに出席します。突然、ライトが消える!彼らが戻ってきたとき、ボディ氏はテーブルの真ん中で死んで横たわっていました。誰もが容疑者です。さらに詳しく調べると、次の事実が明らかになります。
- ボディ氏はグリーンさんと浮気をしていた。
- プラム教授はグリーンさんと結婚しています。
- ボディ氏はとても裕福でした。
- マスタード大佐はとても貪欲です。
- ミス・スカーレットもボディ氏と浮気をしていた。
殺人の動機として考えられるのは、次の 2 つです。
- 憎しみ: 相手が自分の配偶者と関係を持っている場合、誰かがその人を憎みます。
- 貪欲:貪欲で金持ちではなく、犠牲者が金持ちであれば、誰かが喜んで殺人を犯します.
パート A: 上記の事実とルールを Prolog プログラムに記述します。人には次の名前を使用します: colMustard、profPlum、missScarlet、msGreen、mrBoddy。結婚のような対称関係をどのようにエンコードするか (またはエンコードしないか) に注意してください。無限ループは必要ありません。married(X,Y) :- married(Y,X) % INFINITE LOOP
パート B: 被疑者が誰であるか、つまり誰に動機があるかを判断する述語、suspect/2 を書きます。
パート C: データベースに 1 つのファクトを追加して、一意の容疑者を作成します。採点のために削除/追加できるように、ソース コメントにこの行を明確に示してください。
入力するたびに
私は得る
行方不明です
これが私の情報源です。
prolog - プロローグ: リストの並べ替えに関する問題
並べ替えようとしている次のようなリストがあります。
降順になるように並べ替えたい:
特定の番号のリストを抽出する述語があります。
したがって、番号を指定すると、それらの番号を持つ要素のリストが表示され、それらの要素を含まない抽出されたリストが得られます。
それから私はそれを並べ替えました。最大の数値があり、0 からその数値までループして、その数値の要素を抽出する必要があります。ソートされたリストができるまで。
ただし、これを試してみると、無限ループを通過します。誰かが私を助けて、どこが間違っているのか教えてもらえますか? ありがとう、
prolog - プロローグのリストのペアの最小要素が遅い
GNU Prolog にこのコードがありますが、50 要素のペアリストでなぜ遅いのかわかりません。
次のクエリには 10 秒かかります。
この最小値をすばやく見つけるにはどうすればよいですか?
parsing - Prolog で式を解析し、抽象構文を返す
トークンのリストの形式で数式を取り込んで T を見つける parse(Tkns, T) を記述し、演算の順序と結合性を考慮して、抽象構文を表すステートメントを返す必要があります。
例えば、
+ と * を次のように実装しようとしました
これは正しい答えを見つけますが、結合性や操作の順序に従わない答えも返します。
元)
も返す
と
1+2+3 および 1+(2+3) と同等のものを返しますが、前者のみを返す必要があります。
これを機能させる方法はありますか?
編集: 詳細: +、-、*、/、negate (-1、-2 など) を実装するだけでよく、すべての数値は整数です。コードが文法と同様に構造化されるというヒントが与えられました
ネゲートも実装されている場合のみ。
Edit2: Prolog で書かれた文法パーサーを見つけました ( http://www.cs.sunysb.edu/~warren/xsbbook/node10.html )。文法の左手派生を出力するように変更する方法はありますか (Prolog インタープリターが「T=[正解]」を出力するという意味での「出力」)
prolog - プロローグ「ローカルスタック不足」エラー
これが私の簡単なPrologプログラムです:
次のクエリを入力すると
Prolog は次の出力を提供します。
さらにセミコロンを入力すると、Prolog は次のように言います。
ここで何が間違っていますか?