このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1361082416/59
#  ../test/read.cgi/tech/1361082416/48 
#  http://kohada.2ch.net/test/read.cgi/prog/1209467166/401 
#  FizzBuzzクイズ 
#   
#  1.fizz.buzz #=> 1 
#  3.fizz.buzz #=> "Fizz" 
#  5.fizz.buzz #=> "Buzz" 
#  15.fizz.buzz #=> "FizzBuzz" 
#  997.fizz.buzz #=> 997 
#   
#  となるようなメソッドfizz、buzzは定義可能か? 
#  可能である場合、同様にgizzを追加定義し、 
#  7.fizz.buzz.gizz #=> "Gizz" 
#  21.fizz.buzz.gizz #=> "FizzGizz" 
#  35.fizz.buzz.gizz #=> "BuzzGizz" 
#  105.fizz.buzz.gizz #=> "FizzBuzzGizz" 
#  と拡張・応用ができるか? 
#   
#  メソッドのコールに()が必須の言語では 3.fizz().buzz() 形式でも構わない。 
#  オープンクラス機構やメソッドのない言語では関数(buzz(fizz(3)) #=> "Fizz" など)で。 
# 
# 

'FizzBuzzGizz' :-
        'FizzBuzzGizz'([],['','','Fizz'],['','','','','Buzz'],['','','','','','','Gizz']).

'FizzBuzzGizz'(Ln,_,_,_) :-
        length(Ln,100),!.
'FizzBuzzGizz'(Ln,L1,L2,L3) :-
        'FizzBuzzGizz'([_|Ln],L1,L2,L3,_表示情報),
        writef('%t\n',[_表示情報]),
        三つのリストの左シフト(L1,L2,L3,L1_2,L2_2,L3_2),
        'FizzBuzzGizz'([_|Ln],L1_2,L2_2,L3_2).

'FizzBuzzGizz'(Ln,[''|_],[''|_],[''|_],_数値) :-
        length(Ln,_数値),!.
'FizzBuzzGizz'(Ln,[A|_],[B|_],[C|_],_FizzBuzzGizz文字列) :-
        atomic_list_concat([A,B,C],_FizzBuzzGizz文字列).

三つのリストの左シフト([A|R1],[B|R2],[C|R3],L1,L2,L3) :-
        append(R1,[A],L1),
        append(R2,[B],L2),
        append(R3,[C],L3).