問題タブ [prolog-toplevel]

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 投票する
2 に答える
138 参照

prolog - プロローグが正解しない

プロローグを学んでいます。簡単な事実を書きました。しかし、Prolog は正しい答えをくれていないようです。ここで私が間違っていることを理解するのを手伝ってください。

facts-weather.pl

次のようにswi-prologでこれを実行すると

結果は としてのみ表示されpheonixます。しかしla、またwarmです。なぜそれが答えとして与えられないのですか?

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

prolog - 値全体を出力しない変数 Prolog

のようなものを割り当てると、次のよう process([[baby],[boy],[[is]dancing],[with],[[the][family]]],A)に出力されます

端末にすべての値を表示したい。何かのようなもの A = [[baby],[boy],[[is]dancing],[with],[[the][family]]].

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

prolog - Prologの「偽」と「いいえ」の違いは何ですか

私は本Programming in Prolog: Using the ISO Standardに従って Prolog を学び始めました 。言語のイントロの 7 ページで、彼らは次のように断言ます。では、なぜor の代わりにandステートメントをSWI-Prolog使用するのでしょうか?falsetrueyesno

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

prolog - クエリに対するさらなる解決策を取得する

私は持っている

しかし、クエリを実行すると

私は得るだけ

X = tom という別の行も出すべきではありませんか?

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

io - SWI-Prolog で copy_stream_data を呼び出すときに、'|:' プロンプトを回避するにはどうすればよいですか?

catを使用して SWI-Prolog にプログラムを実装しましたcopy_stream_data

ファイルargs.pl:

ファイルcat.pl:

catからstdinへのプログラムを使用すると、 からの入力が必要な場所にstdoutプロンプ​​トが出力されます。どうすればそのプロンプトを回避できますか?|:stdin

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

file-io - 標準出力ストリームのリダイレクト

listing/0SWI-Prolog REPLの出力をファイルに書き込むにはどうすればよいですか?

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

swi-prolog - SWI-Prolog 回答全体 (リスト) を表示する方法は?

次のように、文字列を ascii コードのリストに変換しようとしています。

ご覧のとおり、これでリスト全体が得られるわけではありませんが、必要です。

この解決策は機能しません。答えが得られて完全に停止するため、wを押すことはできません。これもそうではありません。関数を問題なく呼び出すことができ、true が返されますが、リストはまだ完全に表示されていません。

どんな助けでも大歓迎です!

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

prolog - Prolog バックトラッキング ポリシー

SWI-Prolog、バージョン 6.6.6。

次の事実を考慮してください。

その結果、次の答えが得られます。

しかし、データを少し変更すると:

少し違う答えが返ってくる…

質問の述語の最初のパラメーターが他の節と統一されていないため、2 番目のケースのバックトラックは発生しないようです。
それにもかかわらず、各ケースの答えが得られることが期待されますtrue ; false.。エンジンは最初の述語句を試行し (結果はtrue)、次にバックトラックして同じ述語の他の句を探します (結果はfalse)。2番目のケースでは一種のショートカットですか?

これは (ある程度) 標準的な動作ですか?つまり、プロローグ ルールを記述するときに考慮する必要がありますか?それとも純粋に実装固有ですか?