問題タブ [swi-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.

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

c++ - クラスの問題(c ++およびプロローグ)

私はProlog(SWI-cpp.hのクラスとメソッド)へのC++インターフェースを使用しています。ジョンがメアリーとエマとサラが好きな単純なバックトラックを作成するために:

私はただすることができます:

これは別のコードで機能するため、構文は正しいです。しかし、私はこの単純なバックトラックをクラス内で機能させることも試みています。

このクラスは正常に機能し、私のサイクル変数はロボットサイクルごとに増分します。ただし、メインコードを実行すると、未処理の例外エラーメッセージが表示されます。

PlFrame用の開閉ブラケットがあります。フレームやクエリなどがあります...mary、emma、saraをバックトラックして出力するのとまったく同じコードです。エラーメッセージが表示されるので、ここで何が欠けていますか?

コードが実行する必要があると思うことは次のとおりです。mary、emma、saraは、サイクルが増えるたびに1回出力されることを期待しています。ただし、SWI-cpp.hファイルを自動的に開き、クラスPlFrameを指します。それは私に何を伝えようとしているのですか?PlFrameクラスの宣言に問題はありません。

ありがとう、

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

visual-studio-2008 - PREDICATE(名前、アリティ)

以下のプログラムがあるとします。

コンパイルすると、Prolog と C++ がリンクされ、Prolog コマンド プロンプトが起動します。

myFile.pl にあるのは

Prologプロンプトでlistingと入力すると、

私の質問は、外部述語の追加で、クラスなどの他のサブルーチンの結果をどのように使用するのですか? プログラムのどこかに x と y を計算するクラスがあるとします。明らかに、x と y は、そのクラスのヘッダー ファイルのプライベートまたは保護されたメンバーになります。add 述語で x と y を使用するにはどうすればよいですか? たとえば、x と y の合計と、add の 1 番目と 2 番目の引数を返したい場合は?

乾杯、

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

rdf - SWI-Prolog: semweb/rdf_db ライブラリを使用して rdf トリプルをロードする方法は?

n トリプル形式の rdf ファイル (file.trp) があり、各行は整形式のトリプルです。

「主語述語オブジェクト。」

semweb/rdf_db で rdf_load を使用してメモリにロードしようとしましたが、失敗しました。これが私が試したものです:

トレースは、目標が次の時点で失敗したことを示しています。

呼び出す

これはおそらく外国のライブラリで定義されています。

マニュアルには、xml とトリプルをサポートしていると書かれています。ただし、rdf xml ファイルのみをロードします。そのようなrdfトリプルファイルをロードするにはどうすればよいですか?

ありがとう、リー

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

php - PHP から swi-prolog を呼び出す

次のようなphpスクリプト内からswi-prologを呼び出そうとしています:

プロローグ ウィンドウが開かれ、ファイルがコンパイルされますが、すぐに終了し、終了ステータスが 1 として表示されます。実行したい述語が実行されていないことは確かです。

適切なパラメータでプロローグを呼び出し、open自動的に終了せずにウィンドウを保持する方法は他にありますか?

更新:システム環境変数を、プロローグがインストールされているパスに構成しました。

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

prolog - このプロローグ クエリが true と false の両方になるのはなぜですか?

私の SWI-Prolog ナレッジ ベースには、次の 2 つの事実が含まれています。

今、私がクエリを提起した場合

しかし

f(a,b) が真であり偽でもあるのはなぜですか? これは、KB に 3 つのファクトがある場合にも発生します。f(a,d) を追加するとします。KB では、f(a,d) は true (のみ) ですが、f(a,b) と f(a,c) は true と false の両方です。何が起こっているのでしょうか? Prolog がこれらのクエリに対して (のみ) 真の回答をするようにするにはどうすればよいでしょうか?

0 投票する
3 に答える
10555 参照

prolog - swi-prolog で文を分割する方法

Win XPでSWI-Prologを試しています。Prolog の文を別々のアトムに分割する方法を理解しようとしています。

例: 次のような文があるとします。

「これは文字列です」
個々の単語を変数に格納する方法はありますか?

お気に入り :

X = この
Y = は
....
などです。

誰でもこれがどのように機能するか説明できますか?

ありがとう。

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

ruby - プログラミング言語のラッパーを書く

ruby ラッパー swi-prolog を書きたいと思っています。誰かが書き続ける方法を教えてもらえますか?

この種のものを書こうとしているときに、どのような手順を考慮する必要があるかを誰かが説明してくれれば幸いです。

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

prolog - (swi)プロローグ用のあまり似ていないポケットベル

UNIXの一般的なワークフローは、フィルターのパイプラインを使用して、最終的にlessなどのポケットベルを使用することです。例(引数を省略)

さて、swi-prologのコマンドラインの典型的なワークフローの1つは、次のような特定の接続詞のソリューションのセットを提供するように要求することです。

それは私に一連の解決策を容易に与えます。これは、ターミナルウィンドウよりもはるかに長くなる可能性があります。または単一のクエリ

画面に収まらない非常に長いリストを再び与える可能性があります。|lessですから、私は常に、列の最後で平手打ちしたい状況にいることに気づきます。

私が探しているのは、一連のソリューションまたは1つの大きな用語をポケットベルで開く機能です。似たようなもの:

また

0 投票する
4 に答える
5494 参照

prolog - Prologで変数の結果と真/偽の両方を返すにはどうすればよいですか?

ばかげているように聞こえますが、私の述語 maximum/2 がリスト内の最大の要素を返すとしましょう...出力は次のようになります。

私が実装した最大のものは、「false」を出力しないことを除いて、上記のように機能します。この「false」も出力するようにするにはどうすればよいですか。価値?これは、私が終わらせなければならない厄介な任務のためです。:(

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

swi-prolog - XPCE でプロローグ述語から読み取る方法

次の単純なプロローグ述語があります。

アイデアは明らかです。「In」で受け取ったものと同じものを「Out」で返すだけです。さて、このプロローグ述語を XPCE プログラムに組み込みたいと思います。ウィンドウを作成し、このプロローグ述語を呼び出すボタンを追加し、"Out" に返された値を表示します。このタスクを達成するのは次のように簡単だと思いました

残念ながら、それは私が望んでいるようには機能しません。代わりに、"Out" の内部参照を出力するようになりました。例えば:

ここで私の間違いは何ですか?