このディレクトリの索引

'文字列で()の対応を取る'(_文字列,_前文字列,_括弧対応文字列,_後文字列) :-
        atom_chars(_文字列,_文字ならび),
        '文字ならびで()の対応を取る'(_文字ならび,_前文字ならび,_括弧対応文字ならび,_後文字ならび),
        atom_chars(_前文字列,_前文字ならび),
        atom_chars(_括弧対応文字列,_括弧対応文字ならび),
        atom_chars(_後文字列,_後文字ならび).

'文字ならびで()の対応を取る'(_文字ならび,_前文字ならび,_括弧対応文字ならび,_後文字ならび) :-
        '文字ならびで()の対応を取る'(0,0,_文字ならび,_前文字ならび_1,_括弧対応文字ならび_1,_後文字ならび_1),
        '文字ならびで()の対応を非決定性に得る'(_前文字ならび_1,_括弧対応文字ならび_1,_後文字ならび_1,_前文字ならび,_括弧対応文字ならび,_後文字ならび).

'文字ならびで()の対応を非決定性に得る'(_前文字ならび,_括弧対応文字ならび,_後文字ならび,_前文字ならび,_括弧対応文字ならび,_後文字ならび).
'文字ならびで()の対応を非決定性に得る'(_前文字ならび_1,_括弧対応文字ならび_1,_後文字ならび_1,_前文字ならび,_括弧対応文字ならび,_後文字ならび) :-
        '文字ならびで()の対応を取る'(_後文字ならび_1,_前文字ならび_2,_括弧対応文字ならび,_後文字ならび),
        append(_前文字ならび_1,_括弧対応文字ならび_1,_前文字ならび_2,_前文字ならび),!.

'文字ならびで()の対応を取る'(0,0,_文字ならび,_前文字ならび,['('|_括弧対応文字ならび],_後文字ならび) :-
        append(_前文字ならび,['('|R],_文字ならび),!,
        '文字ならびで()の対応を取る'(1,0,R,_括弧対応文字ならび,_後文字ならび),!.

'文字ならびで()の対応を取る'(N,N,R,[],R) :- !.
'文字ならびで()の対応を取る'(M,N,[')'|R1],[')'|R2],R) :-
        N_2 is N + 1,
        '文字ならびで()の対応を取る'(M,N_2,R1,R2,R).
'文字ならびで()の対応を取る'(M,N,['('|R1],['('|R2],R) :-
        M_2 is M + 1,
        '文字ならびで()の対応を取る'(M_2,N,R1,R2,R).
'文字ならびで()の対応を取る'(M,N,[A|R1],[A|R2],R) :-
        '文字ならびで()の対応を取る'(M,N,R1,R2,R).