%
% ●説明
% 文字列の先頭の部分のカッコを消したい
%
% ●対象データ
% (hoge)あいうえお
% ●希望する結果
% hogeあいうえお
%
文字列の先頭の部分のカッコを消したい(_文字列,_置換した文字列) :-
atom_chars(_文字列,_文字ならび),
文字ならびの先頭の部分のカッコを消す(_文字ならび,_置換した文字ならび),
atom_chars(_置換した文字列,_置換した文字ならび).
文字ならびの先頭の部分のカッコを消す(_文字ならび,_置換した文字ならび) :-
先頭部分のカッコ内の文字ならびと残り文字ならびを得る(_文字ならび,_カッコ内の文字ならび,_残り文字ならび),
カッコ内の文字ならびと残り文字ならびを結合する(_カッコ内の文字ならび,_残り文字ならび,_置換した文字ならび).
先頭部分のカッコ内の文字ならびと残り文字ならびを得る(_文字ならび,_カッコ内の文字ならび,_残り文字ならび) :-
append(['('|_カッコ内の文字ならび],[')'|_残り文字ならび],_文字ならび),
カッコ内の文字ならびはカッコを含まない(_カッコ内の文字ならび),!.
カッコ内の文字ならびはカッコを含まない(_カッコ内の文字ならび) :-
\+(member('(',_カッコ内の文字ならび)),
\+(member(')',_カッコ内の文字ならび)).
カッコ内の文字ならびと残り文字ならびを結合する(_カッコ内の文字ならび,_残り文字ならび,_置換した文字ならび) :-
append(_カッコ内の文字ならび,_残り文字ならび,_置換した文字ならび).