Prolog部分规则匹配

时间:2014-11-17 19:32:34

标签: prolog

是否有可能在prolog中部分匹配规则?

a( b ) :- k(c),k( d ).
a( e ) :- k(g),k( d ).

因此知道k(d):-true.是否有可能获得b& e?

1 个答案:

答案 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].