是否有可能在prolog中部分匹配规则?
a( b ) :- k(c),k( d ).
a( e ) :- k(g),k( d ).
因此知道k(d):-true.
是否有可能获得b& e?
答案 0 :(得分:0)
我终于做了我想做的事情,就像这样(swi_prolog),其中规则是要检查的规则的名称
true_check([_,H,B]):-
call(H)->true;B=..L,true_check(L).
true_check([B]) :-
call(B)->true;false.
possible(Rule):-
current_predicate(rule,Head),
clause(Head,B),
B=..I,
true_check(I),
Head=..[_,Rule].