このディレクトリの索引

#  http://d.hatena.ne.jp/E_Mattsan/20130211/1360590408
#  「E.Mattsan氏のブログ 20130211より」
#  
#  設問
#  
#  まず、パタンマッチングの部分だけが見やすくなるように、「どう書く」の問題からいろいろ取り去ってより簡単な問題を作りました。
#  
#  
#  要素を格納する順序付きのコンテナを考える。先頭の位置は0とする。
#  コンテナ中にある指定された要素が3つ連続している場所がある場合、最初の3つ連続した要素の最初の要素の位置を返す。
#  要素が3つ連続した場所がない場合、要素が2つ連続している最初の場所の最初の要素の位置を返す。
#  要素が2つ連続した場所がない場合、最初の要素の位置を返す。
#  要素がコンテナ中に見つからない場合、-1を返す。
#  

search(_コンテナ,_指定された要素,_最初の場所の最初の要素の位置) :-
        member(L1,[[_指定された要素,_指定された要素,_指定された要素|_],[_指定された要素,_指定された要素|_],[_指定された要素|_]]),
        append(L0,L1,_コンテナ),
        length(L0,_最初の場所の最初の要素の位置),!.
search(_,_,-1).