このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1289913298/725
#  流れ変えがてら先生方お願いします 
#   
#  [1] 授業単元:C言語 
#  [2] 問題文(含コード&リンク):main関数中の実数配列(要素数は任意)の要素の平均と分散を計算してmain関数にその結果を返し、 
#  main関数でその結果を表示するmain関数と平均、分散を計算する関数を作り、下の例について実行しなさい。 
#   
#  データ{50.0, 62.0, 80.0, 90.5, 99.5} 
#   
#  

program :-
        main,
        halt.

main :-
        user_parameters(_データならび),
        平均(_データならび,_平均),
        分散(_データならび,_分散),
        write_formatted('パラメータによって入力されたデータの 平均は%t,分散は%tでした。\n',[_平均,_分散]),!.

平均(_データならび,_平均) :-
        length(L,N),
        平均(L,N,0.0e+00,M).

平均([],N,S,M) :- M is S / N,!.
平均([A|R],N,S,M) :-
        S1 is S + A,
        平均(R,N,S1,M).

分散(L,V) :-
        length(L,N),
        算術平均(L,M),
        分散(L,N,M,0.0e+00,V).

分散([],N,M,S,V) :- V is S / N,!.
分散([A|R],N,M,S,V) :-
        S1 is (A - M) ^ 2,
        S2 is S + S1,
        分散(R,N,M,S2,V).