このディレクトリの索引
#  出典: http://hibari.2ch.net/test/read.cgi/db/1279635842/127
#  select文で100行ぐらい結果が返されるとき、 
#  途中の20行目あたりからのみ取得するようなSQL文は 
#  記述可能ですか? 
# 

述語参照で100行ぐらい結果が返されるとき、途中のn行目からのみ取得する(_述語参照,_n行目,_何番目 :: _解) :-
        _述語参照 =.. [_述語|_引数ならび],
        findall(_引数ならび,_述語参照,_解ならび),
        n番目以降だけの解をえる(_n行目,_解ならび,_何番目,_解).

n番目以降だけの解をえる(_n,_解ならび,_何番目,_解) :-
        n番目以降だけの(_n,_解ならび,_n個目の解以降の解ならび),
        解を得る(_n個目の解以降の解ならび,_何番目,_解).

n番目以降だけの(_n,_解ならび,_n個目の解以降の解ならび) :-
        _n_1 is _n - 1,
        length(L0,_n_1),
        append(L0,_n個目の解以降の解ならび,_解ならび).

解を得る(_n個目の解以降の解ならび,_何番目,_解) :-
        append(L1,[_解|_],_n個目の解以降の解ならび),
        解の位置はL1の長さより1多い(L1,_何番目).

解の位置はL1の長さより1多い(L1,_何番目) :-
        length(L1,Len),
        _何番目 is Len + 1.