問題タブ [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.
prolog - プロローグが正解しない
プロローグを学んでいます。簡単な事実を書きました。しかし、Prolog は正しい答えをくれていないようです。ここで私が間違っていることを理解するのを手伝ってください。
facts
-weather.pl
次のようにswi-prologでこれを実行すると
結果は としてのみ表示されpheonix
ます。しかしla
、またwarm
です。なぜそれが答えとして与えられないのですか?
prolog - 値全体を出力しない変数 Prolog
のようなものを割り当てると、次のよう
process([[baby],[boy],[[is]dancing],[with],[[the][family]]],A)
に出力されます
端末にすべての値を表示したい。何かのようなもの
A = [[baby],[boy],[[is]dancing],[with],[[the][family]]].
prolog - Prologの「偽」と「いいえ」の違いは何ですか
私は本Programming in Prolog: Using the ISO Standardに従って Prolog を学び始めました 。言語のイントロの 7 ページで、彼らは次のように断言しています。では、なぜor の代わりにandステートメントをSWI-Prolog
使用するのでしょうか?false
true
yes
no
prolog - クエリに対するさらなる解決策を取得する
私は持っている
しかし、クエリを実行すると
私は得るだけ
X = tom という別の行も出すべきではありませんか?
io - SWI-Prolog で copy_stream_data を呼び出すときに、'|:' プロンプトを回避するにはどうすればよいですか?
cat
を使用して SWI-Prolog にプログラムを実装しましたcopy_stream_data
。
ファイルargs.pl
:
ファイルcat.pl
:
cat
からstdin
へのプログラムを使用すると、 からの入力が必要な場所にstdout
プロンプトが出力されます。どうすればそのプロンプトを回避できますか?|:
stdin
file-io - 標準出力ストリームのリダイレクト
listing/0
SWI-Prolog REPLの出力をファイルに書き込むにはどうすればよいですか?
swi-prolog - SWI-Prolog 回答全体 (リスト) を表示する方法は?
次のように、文字列を ascii コードのリストに変換しようとしています。
ご覧のとおり、これでリスト全体が得られるわけではありませんが、必要です。
この解決策は機能しません。答えが得られて完全に停止するため、wを押すことはできません。これもそうではありません。関数を問題なく呼び出すことができ、true が返されますが、リストはまだ完全に表示されていません。
どんな助けでも大歓迎です!
prolog - Prolog バックトラッキング ポリシー
SWI-Prolog、バージョン 6.6.6。
次の事実を考慮してください。
その結果、次の答えが得られます。
しかし、データを少し変更すると:
少し違う答えが返ってくる…
質問の述語の最初のパラメーターが他の節と統一されていないため、2 番目のケースのバックトラックは発生しないようです。
それにもかかわらず、各ケースの答えが得られることが期待されますtrue ; false.
。エンジンは最初の述語句を試行し (結果はtrue
)、次にバックトラックして同じ述語の他の句を探します (結果はfalse
)。2番目のケースでは一種のショートカットですか?
これは (ある程度) 標準的な動作ですか?つまり、プロローグ ルールを記述するときに考慮する必要がありますか?それとも純粋に実装固有ですか?