このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1312201995/628
#  [1] 授業単元:アルゴリズム  
#  [2] 問題文(含コード&リンク):  
#   scanf で n を受け取り,  
#  Sn= 1 - 1/2 + 1/3 - 1/4 + 1/5 - 1/6 + ... + (-1)n+1/n  
#  を計算せよ. このとき n を大きくすると Sn は log 2 = 0.69314... に近づく. 
#  

'n を受け取り,  Sn= 1 - 1/2 + 1/3 - 1/4 + 1/5 - 1/6 + ... + (-1)n+1/n  を計算する'(_n,Sn) :-
        シグマ(N,1,_n,1 / ((-1) * N),Sn).

シグマ(_k,S,E,_式,X) :-
        実数総計(Y,(
                    for(S,_k,E),
                    Y is _式),
                X).

実数総計(_選択項,_項,_合計値) :-
        findall(_選択項,_項,_値ならび),
        実数加算(_値ならび,_合計値),!.

実数加算([],0.0).
実数加算([A|R],S) :-
        実数加算(R,S1),
        S is S1 + A.