このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1322562648/245
#  [1] 授業単元:2分探索 
#  [2] 問題文(含コード&リンク): 
#  http://ime.nu/ideone.com/YJwRQ 
#  データが昇順ではなく、降順に並んでいる場合の2分探索をプログラムを作成せよ 
#  

'データが昇順ではなく、降順に並んでいる場合の2分探索をプログラム'(_降順ならび,_鍵,_値) :-
        ならびの二分(_降順ならび,L1,[(A,B)|L2]),
        '降順に並んでいる場合の2分探索診断'(_鍵,A,B,L1,L2,_値).

'降順に並んでいる場合の2分探索診断'(_鍵,_鍵,_値,L1,L2,_値) :- !.
'降順に並んでいる場合の2分探索診断'(_鍵,A,B,L1,L2,_値) :-
        _鍵 @< A,
        'データが昇順ではなく、降順に並んでいる場合の2分探索をプログラム'(L2,_鍵,_値).
'降順に並んでいる場合の2分探索診断'(_鍵,A,B,L1,L2,_値) :-
        _鍵 @> A,
        'データが昇順ではなく、降順に並んでいる場合の2分探索をプログラム'(L1,_鍵,_値).

ならびの二分(L,L1,L2) :-
        length(L,Len),
        Len1 is Len // 2,
        length(L1,Len1),
        append(L1,L2,L).