このディレクトリの索引
#  
#  文字列検索の標準パターン
#  文字列を受け取り条件一致させて、_前文字列,_適合文字列,_後文字列を返す述語を
#  先に定義しておく。(ここでは 文字列一致/3)
#  最初に一致させて、それで成功とせず子述語を目標として呼び出す。
#  子述語はいきなり一度成功して解を返す。(非決定性的動作になる)
#  バックトラックしてきたら次の節の定義で、目標は最初の文字列検索/4を相互的に
#  呼び出す。
#  成功して来たら、これは後文字列部分について成功したのだから、それまでの部分(前回の 前文字列_1 + _適合文字列)と
#  今回の(後文字列の)前文字列を結合して全体の前文字列とする。
#  

文字列検索(_文字列,_前文字列,_適合文字列,_後文字列) :-
        文字列一致(_文字列,_前文字列_1,_適合文字列_1,_後文字列_1),
        文字列検索(_文字列,_前文字列_1,_適合文字列_1,_後文字列_1,_前文字列,_適合文字列,_後文字列).

文字列検索(_文字列,_前文字列,_適合文字列,_後文字列,_前文字列,_適合文字列,_後文字列).
文字列検索(_文字列,_前文字列_1,_適合文字列_1,_後文字列_1,_前文字列,_適合文字列,_後文字列) :-
        文字列検索(_後文字列,_前文字列_2,_適合文字列,_後文字列),
        atomic_list_concat([_前文字列_1,_適合文字列_1,_前文字列_2],_前文字列).