このディレクトリの索引


% *** user: 項複写変数指定付き / 7 ***
項複写変数指定付き(M,N,P,P1,VL,VLX,VLX) :-
        M > N,
        !.
項複写変数指定付き(M,N,P,P1,VL,VL1,VLX) :-
        arg(M,P,T),
        arg(M,P1,T1),
        項複写変数指定付き(T,T1,VL,VL1,VL2),
        M1 is M + 1,
        項複写変数指定付き(M1,N,P,P1,VL,VL2,VLX),
        !.

% *** user: 項複写変数指定付き / 5 ***
項複写変数指定付き(P,P1,VL,VL1,VLX) :-
        struct(P),
        functor(P,F,A),
        functor(P1,F,A),
        項複写変数指定付き(1,A,P,P1,VL,VL1,VLX),
        !.
項複写変数指定付き(P,P1,VL,VL1,VL2) :-
        var(P),
        member(V,VL),
        P == V,
        append(VL1,[P1],VL2),
        !,
        !.
項複写変数指定付き(P,P1,VL,VL1,VL1) :-
        var(P),
        member(V,VL),
        \+(P == V),
        !.
項複写変数指定付き(P,P1,VL,VL1,VL1) :-
        \+(var(P)),
        atom_to_term(P,Q,_),
        \+(P == Q),
        swritef(P2,'%q',[P]),
        atom_to_term(P2,P1,_),
        !.
項複写変数指定付き(P,P,VL,VL1,VL1).

% *** user: 項複写変数指定付き / 4 ***
項複写変数指定付き(P,P1,VL,VLX) :-
        項複写変数指定付き(P,P1,VL,[],VLY),
        reverse(VLY,VLX).

% *** user: 項複写表示 / 4 ***
項複写表示(M,N,P,P1) :-
        M > N,
        !.
項複写表示(M,N,P,P1) :-
        arg(M,P,T),
        arg(M,P1,T1),
        項複写表示(T,T1),
        M1 is M + 1,
        項複写表示(M1,N,P,P1),
        !.

% *** user: 項複写表示 / 2 ***
項複写表示(P,P1) :-
        struct(P),
        functor(P,F,A),
        functor(P1,F,A),
        項複写表示(1,A,P,P1),
        !.
項複写表示(P,P) :-
        var(P),
        !.
項複写表示(P,P) :-
        integer(P),!.
項複写表示(P,P) :-
        real(P),!.
項複写表示(P,P1) :-
        \+(var(P)),
        swritef(S1,'%t',[P]),
        swritef(P1,'%q',[P]),
        \+(S1 = P1),
        swritef(P1,'%q',[P]),
        !.
項複写表示(P,P).

% *** user: 項複写印像 / 5 ***
項複写印像(M,N,P,L,P1) :-
        M > N,
        !.
項複写印像(M,N,P,L,P1) :-
        arg(M,P,T),
        arg(M,P1,T1),
        項複写印像(T,L,T1),
        M1 is M + 1,
        項複写印像(M1,N,P,L,P1).

% *** user: 項複写印像 / 3 ***
項複写印像(P,L,P1) :-
        struct(P),
        functor(P,F,A),
        functor(P1,F,A),
        項複写印像(1,A,P,L,P1),
        !.
項複写印像(P,L,P1) :-
        var(P),
        印像ならび(L,L1),
        sprintf('%q',[P],S1),
        member(P1 = S1,L1),
        !.
項複写印像(P,_,P).

% *** user: 項複写 / 4 ***
項複写(M,N,P,P1) :-
        M > N,
        !.
項複写(M,N,P,P1) :-
        arg(M,P,T),
        arg(M,P1,T1),
        項複写(T,T1),
        M1 is M + 1,
        項複写(M1,N,P,P1),
        !.

% *** user: 項複写 / 2 ***
項複写(P,P1) :-
        struct(P),
        functor(P,F,A),
        functor(P1,F,A),
        項複写(1,A,P,P1),
        !.
項複写(P,P1) :-
        var(P),
        !.
項複写(P,P1) :-
        \+(var(P)),
        parse_atom(P,1,Q,_),
        \+(P == Q),
        sprintf(%q,[P],P1),
        !.
項複写(P,P).

% *** user: '印像ならび' / 2 ***
印像ならび([],[]) :- !.
印像ならび([A = B|R],[A = C|R1]) :-
        swritef(C,'%q',[B]),
        印像ならび(R,R1).