このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1349545643/864
# 
#  0 ~ 64 の 65 個の数字を
#  以下のような個数毎に改行して表示する場合
#  各言語ではどのように書きますか?
#  便宜上それぞれの数字の型は int としてください
# 
#   0 1 2 3 4
#   5 6 7 8
#   9 10 11 12
#  13 14 15 16 17
#  18 19 20 21
#  22 23 24 25
#  26 27 28 29 30
#  31 32 33 34
#  35 36 37 38
#  39 40 41 42 43
#  44 45 46 47
#  48 49 50 51
#  52 53 54 55 56
#  57 58 59 60
#  61 62 63 64


'0 ~ 64 の 65 個の数字を
以下のような個数毎に改行して表示する場合
各言語ではどのように書きますか?
便宜上それぞれの数字の型は int としてください

 0 1 2 3 4
 5 6 7 8
 9 10 11 12
13 14 15 16 17
18 19 20 21
22 23 24 25
26 27 28 29 30
31 32 33 34
35 36 37 38
39 40 41 42 43
44 45 46 47
48 49 50 51
52 53 54 55 56
57 58 59 60
61 62 63 64' :-
        '0 ~ 64 の 65 個の数字を'(_数ならび),
        個数毎に改行して表示する(_数ならび,[5,4,4]).

'0 ~ 64 の 65 個の数字を'(_数ならび) :-
        findall(N,between(0,64,N),_数ならび).

個数毎に改行して表示する(_数ならび,[_個数|_残り表示パターン]) :-
        個数毎に(_数ならび,_個数,_個数分の数ならび,_残り数ならび),
        改行して表示する(_個数分の数ならび),
        個数毎に改行して表示する(_残り数ならび,_残り表示パターン).
個数毎に改行して表示する([_数|_残り数ならび],[]) :-
        個数毎に改行して表示する([_数|_残り数ならび],[5,4,4]).
個数毎に改行して表示する(_,_).

個数毎に(_数ならび,_個数,_個数分の数ならび,_残り数ならび) :-
        length(_個数分の数ならび,_個数),
        append(_個数分の数ならび,_残り数ならび,_数ならび),!.

改行して表示する(_個数分の数ならび) :-
        atomic_list_concat(_個数分の数ならび,' ',_空白で区切られた数ならび文字列),
        writef('%t\n',[_空白で区切られた数ならび文字列]).