このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1288531658/196
#  [1] 授業単元:プログラミング(1) 
#  [2] 問題文(含コード&リンク): 
#  0000000000 
#  0000000001 
#  0000000010 
#  0000000011 
#  0000000100 
#  ~中略~ 
#  1111111110 
#  1111111111 
#  上記のように10進数の0~1023の数字を順に2進数で出力するプログラムを書け 
#   
#  
% ここではいかにも Prolog 的な課題としてソースプログラムを生成する問題と捉えてみた。

'0000000000\n0000000001\n0000000010\n0000000011\n0000000100\n~中略~\n1111111110\n1111111111\n 上記のように10進数の0~1023の数字を順に2進数で出力するプログラムを書け' :-
        write('''10桁の2進数をすべて表示する'' :-\n'),
        for(0,N,9),
        concat_atom(['N',N],S),
        write_formatted('        member(%t,[0,1]),\n',[S]),
        N = 9,
        write('        write_formatted(''%%0d%%0d%%0d%%0d%%0d%%0d%%0d%%0d%%0d%%0d\n'',[N0,N1,N2,N3,N4,N5,N6,N7,N8,N9]),\n'),
        write('        fail.\n'),
        write('''10桁の2進数をすべて表示する''.\n').

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 生成されるプログラムは

'10桁の2進数をすべて表示する' :-
        member(N0,[0,1]),
        member(N1,[0,1]),
        member(N2,[0,1]),
        member(N3,[0,1]),
        member(N4,[0,1]),
        member(N5,[0,1]),
        member(N6,[0,1]),
        member(N7,[0,1]),
        member(N8,[0,1]),
        member(N9,[0,1]),
        write_formatted('%%0d%%0d%%0d%%0d%%0d%%0d%%0d%%0d%%0d%%0d\n',[N0,N1,N2,N3,N4,N5,N6,N7,N8,N9]),
        fail.
'10桁の2進数をすべて表示する'.