%  
% ●説明  
%    文字列の先頭の部分のカッコを消したい 
%  
%  ●対象データ  
%    (hoge)あいうえお  
%  ●希望する結果  
%    hogeあいうえお  
% 



文字列の先頭の部分のカッコを消したい(_文字列,_置換した文字列) :-  
atom_chars(_文字列,_文字ならび),  
文字ならびの先頭の部分のカッコを消す(_文字ならび,_置換した文字ならび),  
atom_chars(_置換した文字列,_置換した文字ならび).  

文字ならびの先頭の部分のカッコを消す(_文字ならび,_置換した文字ならび) :-  
先頭部分のカッコ内の文字ならびと残り文字ならびを得る(_文字ならび,_カッコ内の文字ならび,_残り文字ならび),  
カッコ内の文字ならびと残り文字ならびを結合する(_カッコ内の文字ならび,_残り文字ならび,_置換した文字ならび).  

先頭部分のカッコ内の文字ならびと残り文字ならびを得る(_文字ならび,_カッコ内の文字ならび,_残り文字ならび) :-  
append(['('|_カッコ内の文字ならび],[')'|_残り文字ならび],_文字ならび),  
カッコ内の文字ならびはカッコを含まない(_カッコ内の文字ならび),!.  

カッコ内の文字ならびはカッコを含まない(_カッコ内の文字ならび) :-  
\+(member('(',_カッコ内の文字ならび)),  
\+(member(')',_カッコ内の文字ならび)).  

カッコ内の文字ならびと残り文字ならびを結合する(_カッコ内の文字ならび,_残り文字ならび,_置換した文字ならび) :-  
append(_カッコ内の文字ならび,_残り文字ならび,_置換した文字ならび).