2
:私は引数からすべての関数を見つける方法はありますか?これらの事実を
functor(a,b).
functor(b,c).
functor2(a,b).
functor2(a,c).
findFunctor(F,a,b).
を尋ねると
F = functor
F = functor2
を得ることができますか?
ありがとうございました。
:私は引数からすべての関数を見つける方法はありますか?これらの事実を
functor(a,b).
functor(b,c).
functor2(a,b).
functor2(a,c).
findFunctor(F,a,b).
を尋ねると
F = functor
F = functor2
を得ることができますか?
ありがとうございました。
これはSWIを使用してのために働くかもしれません:
find_functor(Functor, Args):-
length(Args, Len),
current_functor(Functor, Len),
Functor \=':', % Dismiss :/2
Term =.. [Functor|Args],
predicate_property(Term, number_of_rules(0)), % It's a fact
\+ predicate_property(Term, imported_from(_)), % not from a module
clause(Term, true).
、あなたが問い合わせることができ
?- find_functor(Functor, [a,b]).
Functor = functor ;
Functor = functor2