このディレクトリの索引
http://pc12.2ch.net/test/read.cgi/tech/1274827528/847
#  [1] 授業単元:繰り返し処理  
#  [2] 問題文(含コード&リンク):http://ime.nu/kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10694.txt  
# 
# キーボードより整数値を繰り返して入力する。このとき、入力した値の合計を求め、 
# 表示するプログラムを作成せよ。なお、この繰り返し処理は0(ゼロ)を入力したとき 
# に終了するものとする。 
# 
# 実行例) 
# 
#       10 ← 
#       20 ←   キーボードからの入力(1,2行目:数値入力, 3行目:終了指 
# 
#       0  ←    A 
# 
#       30 ←   ディスプレイへの出力(合計した結果) 

'キーボードより整数値を繰り返して入力する。このとき、入力した値の合計を求め、表示する。
なお、この繰り返し処理は0(ゼロ)を入力したときに終了するものとする。' :-
findsum(_整数値,(
'キーボードより整数値を繰り返して入力する。'(_整数値),
('0(ゼロ)を入力したときに'(_整数値),!,'終了するものとする。';true)),_合計),
表示する(_合計).

'キーボードより整数値を繰り返して入力する。'(_整数値) :-
repeat,
整数を得る(整数値,true,_整数値).

'0(ゼロ)を入力したときに'(0).

'終了するものとする。' :- fail.

表示する(_合計) :-
writef('%w\n',[_合計]).

findsum(A,B,C) :-
findall(A,B,L),
sum_list(L,C).

% 数を得る/3