このディレクトリの索引
#  出典: プログラミングのお題スレ Part3
#  お題:
#  n=1のとき
#  01
#  10
#  
#  n=2のとき
#  0011
#  0011
#  1100
#  1100
#  
#  n=3のとき
#  000111
#  000111
#  000111
#  111000
#  111000
#  111000
#  
#  を表示する。 

'n=1のとき
01
10

n=2のとき
0011
0011
1100
1100

n=3のとき
000111
000111
000111
111000
111000
111000

を表示する。'(_n) :-
        'n個の数字0の後、n個の数字1を一行としてn行表示し、n個の数字1の後、n個の数字0を一行としてn行表示する'(_n).

'n個の数字0の後、n個の数字1を一行としてn行表示し、n個の数字1の後、n個の数字0を一行としてn行表示する'(_n) :-
        'n個の数字0の後、n個の数字1を一行としてn行表示し、'(_n).
        'n個の数字1の後、n個の数字0を一行としてn行表示する'(_n).

'n個の数字0の後、n個の数字1を一行としてn行表示し、'(_n) :-
        n個の数字0で構成されたアトム(_n,_0),
        n個の数字1で構成されたアトム(_n,_1),
        n行表示する(_n,_0,_1).

'n個の数字1の後、n個の数字0を一行としてn行表示する'(_n) :-
        n個の数字0で構成されたアトム(_n,_0),
        n個の数字1で構成されたアトム(_n,_1),
        n行表示する(_n,_1,_0).

n個の数字0で構成されたアトム(_n,_0) :-
        length(L,_n),
        ならびの構成要素は全て数字0である(L),
        atomic_list_concat(L,_0).

ならびの構成要素は全て数字0である([]).
ならびの構成要素は全て数字0である(['0'|R]) :-
        ならびの構成要素は全て数字0である(R).

n個の数字1で構成されたアトム(_n,_1) :-
        length(L,_n),
        ならびの構成要素は全て数字1である(L),
        atomic_list_concat(L,_1).

ならびの構成要素は全て数字1である([]).
ならびの構成要素は全て数字1である(['1'|R]) :-
        ならびの構成要素は全て数字1である(R).

n行表示する(_n,A,B) :-
        forall(between(1,_n,_),writef('%t%t\n',[A,B])).