このディレクトリの索引


解釈実行((_目標_1 , _目標_2)) :-
        !,
        解釈実行連言(_目標_1,_目標_2).
解釈実行((_目標_1 ; _目標_2)) :-
        !,
        解釈実行選言(_目標_1,_目標_2).
解釈実行(_副目標) :-
        定義述語(_副目標),
        !,
        定義述語解釈実行(_副目標).
解釈実行(_副目標) :-
        call(_副目標).

解釈実行連言(_目標_1,_目標_2) :-
        解釈実行置換((_目標_1 , _目標_2),_目標),
        call(_目標).

解釈実行選言(_目標_1,_目標_2) :-
        解釈実行置換((_目標_1 , _目標_2),_目標),
        call(_目標).

定義述語(_副目標) :-
        predidate_property(_副目標,_述語の属性),
        \+(_述語の属性=builtin),
        \+(_述語の属性=undefined),!.

定義述語解釈実行(_副目標) :-
        clause(_副目標,_本体),
        解釈実行置換(_本体,_置換された本体),
        call(_置換された本体).


解釈実行置換(((!) , Q),((!) , Q2)) :-
         解釈実行置換(Q,Q2),!.
解釈実行置換((_副目標 , Q),(解釈実行(_副目標) , Q2)) :-
        解釈実行置換(Q,Q2),!.
解釈実行置換((_副目標 ; Q),(解釈実行(_副目標) ; Q2)) :-
        解釈実行置換(Q,Q2),!.
解釈実行置換(!,!) :- !.
解釈実行置換(_副目標,解釈実行(_副目標)).