このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1325685876/622
#  [1] 授業単元: サブルーチン 
#  [2] 問題文(含コード&リンク):  
#    問1 次の関数の冗長性を最小化せよ。 
#              http://ime.nu/ideone.com/34hnC 
#   
#    問2 問1の関数の冗長性を、サブルーチンを使用しないで汎用的関数化 
#      により最小化せよ。 
#  

func1(_x,_y,_z,_x_2,_y_2,_z_2) :-
        func1([_,_,_,_],_x,_y,_z,_x_2,_y_2,_z_2).

func1([],L,L).
func1([_|R],L1,L) :-
        writef('(x,y,z): (%t,%t,%t)\n',L1),
        findall(M2,(
                    member(M,L1),
                    M2 is M + 1),
                L2),
        func1(R,L2,L).

func2(_x,_y,_z,_x_2,_y_2,_z_2) :-
        func2([2,4,-1,9],[_x,_y,_z],[_x_2,_y_2,_z_2]).

func2([],L,L).
func2([N|R],L1,L) :-
        writef('(x,y,z): (%t,%t,%t)\n',L1),
        findall(M2,(
                    member(M,L1),
                    M2 is M + N),
                L2),
        func2(R,L2,L).