非常に複雑であるだけでなく、Prolog が理想的な複数のソリューションを必要とする C++ プログラムのロジックがあります。これは、アクションの入力をチェックするファイアウォール構成スクリプトのようなものですが、複数のアクションが必要になる場合もあります。
私が欲しいのは次のようなものです:
class PrologEngine
{
LoadLogic(const char* filename) throw PrologException; // Load a file of prolog rules, predicates facts etc in textual format. Must be callable multiple times to load AND COMPILE (for speed) prolog rule files.
std::vector<std::string> Evaluate(const char* predicate_in_string_form = "execute(input, Result)") throw PrologException; Returns a vector of matching predicates in text form.
};
C++ にコールバックする機能は必要ありません。
AMI Prolog はそれを取得しているようですが、Linux では利用できません。私は SWI-Prolog を使用しようとしていますが、2 つの例と信じられないほどビザンチン API (私の意見) しか見つかりません。
誰かが私が探しているものに近い例を教えてもらえますか?