このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1312201995/764
#  [1] 授業単元:C言語システムプログラミング 
#  [2] 問題文:配列と配列の大きさ(要素の数)を引数で与えて,その総和を求める戻り値で得る関数を作成する. 
#  int sum_array(int v[], int n); 
#   
#  /* 関数の中で使うfor文 */ 
#  for(i = 0; i < n; i++) { 
#   
#  } 
#  (これらを使用する) 
#   
#  そして,関数に以下の配列を与えて,総和を求め表示するプログラムを作成せよ. 
#   
#  int num[20] = {44, 29, 84, 37, 29,  
#                 28, 2, 93, 6, 42, 
#                 75, 69, 31, 99, 55, 
#                 38, 81, 73, 8, 93}; 
#  実行例↓ 
#  $ ./homework 
#   
#  result: 1016 
#  

配列を模したならび([44, 29, 84, 37, 29, 28, 2, 93, 6, 42, 75, 69, 31, 99, 55, 38, 81, 73, 8, 93]).

'ならびを引数で与えて,その総和を求めるプログラムを作成する' :-
        assertz(('ならびを引数で与えて,その総和を求める' :-
                         配列を模したならび(_ならび),
                         'ならびを引数で与えて,その総和を求める'(_ならび,0,_総和)),
                         writef('結果: %t\n',[_その総和]))),
        assertz(('ならびを引数で与えて,その総和を求める'([],_総和,_総和) :- ! )),
        assertz((''ならびを引数で与えて,その総和を求める'([N|R],_総和_1,_総和) :-
                         _総和_2 is N + _総和_1,
                         'ならびを引数で与えて,その総和を求める'(R,_総和_2,_総和))).

%  例によって配列はならび(リスト)にした。ここでは要素数は無意味だから、除去。
%  さて、「プログラムを作成する」を文字通り取り上げたらどうなるかを示す。
%  「ならびを引数で与えて,その総和を求める」と
%  「ならびを引数で与えて,その総和を求めるプログラムを作成する」は違いがあるのではないかという問いかけだ。
%