0


0

私はPHPでPrologを使いたいです。 出来ますか?

4 回答


3


他のプロセスを実行/生成するための exec-familiy関数は常にあります。


2


上記のように、Prologインタプリタかバイナリを実行することができます。 しかし、ほとんどのPrologの実装はPrologインタプリタを呼び出すのに使うことができるC APIもエクスポートします。

小さなPHPモジュールを作成してインタプリタを起動し、クエリを実行することができます。 たとえば、SICStusのドキュメントには、CのPrologの使い方が詳しく書かれています。


1


ほとんどのプロローグはプロローグコードをバイナリにコンパイルすることを可能にします。 すでに述べたように、PHPからこのバイナリを呼び出すことができます。


1


私はhttps://jarble.github.io/transpiler/javascript/js_transpiler/test_parser.html#%7B%22inputText%22%3A%22function%20is_greater_than(%24a%2C%24b)%7B%5Cn%20%20% 20%20 return%20%24a%20%3E%20%24b%3B%5Cn%7D%5Cnfunction%20is_an_animal(%24a)%7B%5Cn%20%20%20%20return%20in_array(%24a%2C%5B %5C%22dog%5C%22%2C%5C%22cat%5C%22%5D)%3B%5Cn%7D%22%2C%22inputLang%22%3A%22php%22%2C%22%output%22%3A%簡単なPHPプログラムをPrologとhttps://jarble.github.io/transpiler / javascript / js_transpiler / test_parser.html#%7B%22inputText%22%3A%22に変換できる22prolog%22%7D [翻訳者が書きました] %5Cnis_greater_than(A%2CB)%20%3A-%20%5Cn%20%20%20%20A%3EB。%20%5Cnis_an_animal(A)%20%3A-%20%5Cn%20%20%20% 20メンバー(A%2C%5B%5C%22%2C%5C%22cat%5C%22%5D)。%22%2C%22入力Lang%22%3A%22%2C%22%2C%22outputLang%22% 3A%22php%22%7D [その逆]。

これは可能な入力プログラムです。

関数is_greater_than($ a、$ b){return $ a> $ b;関数is_an_animal($ a){return in_array($ a、["dog"、 "cat"]);} }

…​and this is the output program:

is_greater_than(A、B): -  A> B。 is_an_animal(A): - メンバー(A、["dog"、 "cat"])。

このトランスレータは概念実証のためだけのものですが、単純なPHPプログラムをPrologに変換するのをさらに簡単にするかもしれません。