文字列が実行可能な作業呼び出しかどうかを確認しようとしています。これを行うには、文字列を解析して最初の単語を取得し、それが事前定義された関数のデータベースと一致する場合、それは成功するはずです。 Qには文字列があり、Aは後で使用されますが、今は使用されません。文字列の例は:append aとbです。Prologメンバ関数は正常に動作するはずですが、
is_uni(Q, A):-
split_string(Q, " ", ",", [X|Y]),
uni_db(Z),
member(X, Z).
uni_db([
append,
member,
append1
]).
あるいはさらに良い、モジュールに述語を "定義された" と 'current_predicate(モジュール名:Predicate_name)を使用して置くことが定義されているかどうかをチェックするために'。 –