問題タブ [gnu-prolog]
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.
stream - Prolog パイプの部分入力、残りはユーザー入力
入力ループを含むプロローグ プログラムを作成しています。入力の大部分は、応答ファイルに事前にスクリプト化されています。として実行しprolog < response.txt
ます。応答ファイルが終了したら、キーボードのユーザー入力を介してプログラムを続行したいと考えています。ただし、応答ファイルが終了すると、キーボードから /1 を読み取るのではなくend_of_file
、入力として無限ループで読み取りを続けます。
パイプがファイルの最後に到達したら、ユーザーが入力した入力にプログラムを戻したいと思います。どうすればいいですか?
前もって感謝します。
list - プロローグのリストに文字列を追加する
私はPrologの初心者で、すでに理解すべき問題がいくつかあります。つまり、コンソールによって導入されたいくつかの文字列を追加するテストを行っていました:
そして最終的には常にこの出力を取得します:
数値は、コンソールがさらに値を要求するのを終了するためのものです。何が問題なのかわかりません。よろしくお願いします。
prolog - Prologでファイル長をどのように切り捨てますか?
Prolog でファイルの長さを切り詰めるにはどうすればよいですか?
set_stream_position/2
ISO規格の述語しか見つかりません。set_stream_length/2
しかし、主要な Prolog システムには述語が見つかりません。
同様に、ストリーム プロパティがありますが、ストリーム プロパティposition/1
はどこにもありませんlength/1
。後者は を使用するのに役立ちますset_stream_length/2
。
回避策は何ですか?
さよなら
prolog - /3 が翻訳するフレーズを確認する標準的な方法は?
私はGNU Prologの動作を掘り下げようとしています:
フレーズ/3 が何に変換されるかを確認する標準的な方法はありますか?
ISO DCG 提案 (*) によると、expand_term/2 が必要です。これで、次のことを確認できます。
これは、フレーズ/3 が私のテスト/3 でどのように使用されているかを教えてくれますか?
(*) ISO/IEC DTR 13211–3:2006 確定
節文法規則
Klaus Daessler
2012 年 11 月 20 日
http://www.complang.tuwien.ac.at/ulrich/iso-prolog/dcgs/dcgsdin121120.pdf
prolog - なぜgprologはそれほど多くのRAMを必要とするのですか?
以下はトップコマンドからのものです:
そのRESは妥当ですが、そのサイズはswiplと比較して大きすぎます。
OSはfreebsd9.0です。
心から!
prolog - プロローグスクリプトを実行するときにプロローグ印刷クエリ結果を作成するにはどうすればよいですか?
私はプロローグに不慣れで、手動で入力するのではなく、すべてのクエリをファイルに保存したいと思っています。
私はこれらの事実を持っていますfacts.pl
:
この質問の答えを読んだ後、私は次のコードを思いつきますqueries.pl
:
ここで、ホールドかどうかを調べたいと思いlikes(wallace, cheese)
ます。私が期待したのは、yes
またはのようなno
出力ですが、実際の出力はlikes(wallace, cheese)
私はたくさんググってみました
X = likes(wallace, cheese), write(X).
X is likes(wallace, cheese), write(X).
X := likes(wallace, cheese), write(X).
しかし、それらのどれも機能しません。
それはあなたにとって本当に簡単な質問かもしれませんが、私は物事を正しくする方法についてはわかりません。
ところで、私はGNUProlog1.4.1を使用しています
prolog - プロローグスクリプトを使用するときに統合結果を印刷するにはどうすればよいですか?
私はすべてのクエリを実行するためにプロローグスクリプトを使用しています、コードは次のようになります:
問題は、queryAll
次のような統合結果を見たいときに、「はい」または「いいえ」しか出力されないことです。
プロローグでこれを行う方法は?前もって感謝します。
prolog - gprolog でのエラー処理?
単純なクエリでクエリのグループを実行するために、これらのクエリにタグを付けて、forall/2
それらを呼び出すために使用します。
のようなものを定義すると、出力query(true).
から確認できます。yes: true
ここでの問題は、query( ... )
が常に存在するとは限らないことです。プロローグがタグ付けされたものを見つけることができない場合query
、forall/2
失敗し、「error(existence_error(procedure,query/1),forall/2)」という例外が発生します。
この例外を処理したいのですが、制御フロー全体を壊したくありません。
catch/3が役立つことはわかっていますが、使い方がわかりません。私のコードは次のとおりです。
しかし、プロローグは「ネイティブ コード プロシージャ catch/3 は再定義できません」と言っています。見逃したものはありますか?
prolog - マップリストエラー?
次の使用されているマップリストは、gprolog ではなく swi-prolog で機能します。
よろしく!
gnu-prolog - absolute_file_name が機能しない理由
次のコードは swi-prolog で機能します。
gprolog にはモジュールがないようです。gprolog で動作させるにはどうすればよいですか?
心から!