このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1354070278/957
#  [1] 授業単元:C言語入門 
#  [2] 問題文(含コード&リンク): 
#  コマンド行から複数の数値を受け取りその平均値を出力するプログラムを 
#  作成し、プログラムリストと実行結果を示せ。ヒント:受け取った文字列を 
#  double型に変換するには、関数double atof(const char *nPtr)を使う。 
#  この関数を使うには<stdlib.h>のインクルードが必要である。 
#  #include <stdio.h> 
#  #include <stdlib.h> 
#  int main(void) 
#  { 
#  char str[]="1.41421356"; 
#  double x; 
#  x = atof(str); 
#  } 
#  

'コマンド行から複数の数値を受け取りその平均値を出力する' :-
        利用者引数ならび(_利用者引数ならび),
        数値引数ならびに変換(_利用者引数ならび,_数値引数ならび),
        相加平均(_数値引数ならび,_相加平均),
        writef('平均値は %t です\n',[_相加平均]).

利用者引数ならび(_利用者引数ならび) :-
        current_prolog_flag(argv, _コマンド引数ならび),
        append(_, [--|_利用者引数ならび], _コマンド引数ならび).

数値引数ならびに変換(_利用者引数ならび,_数値引数ならび) :-
        findall(_数値,(
                    member(_数値文字列,_利用者引数ならび),
                    atom_number(_数値文字列,_数値)),
               _数値引数ならび).

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

相加平均(L,M) :-
        length(L,N),
        相加平均(L,N,0.0e+00,M).