このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1308749241/679
#  連投すいません。 
#  上の反復のプログラムにおいて平均身長、最大身長を出す場合はどうすればいいのでしょうか。 
#  ヒントだけでもありがたいです。 
#   

'入力しながらそれまでの平均身長、最大身長を出す'(_入力件数,_平均身長,_最大身長,_入力身長ならび) :-
        身長を得る(_身長),
        '入力しながらそれまでの平均身長、最大身長を出す'([_身長],_入力件数,_平均身長,_最大身長).

'入力しながらそれまでの平均身長、最大身長を出す'(_身長ならび1,_入力件数,_平均身長,_最大身長) :-
        avg(_身長ならび1,_平均身長1),
        max(_身長ならび1,_最大身長1),
        length(_身長ならび1,_入力件数1),
        writef('入力件数=%t,平均身長=%t,_最大身長=%t\n',[_入力件数1,_平均身長1,_最大身長1]),
        身長を得る(_身長),
        \+(_身長 = 0),
        '入力しながらそれまでの平均身長、最大身長を出す'([_身長|_身長ならび1],_入力件数,_平均身長,_最大身長,_身長ならび).
'入力しながらそれまでの平均身長、最大身長を出す'(_身長ならび1,_入力件数,_平均身長,_最大身長,_身長ならび) :-
        reverse(_身長ならび1,_身長ならび),
        avg(_身長ならび,_平均身長),
        max(_身長ならび,_最大身長),
        length(_身長ならび,_入力件数),!.

最大身長は(_身長,_最大身長1,_身長) :-
        _身長 > _最大身長1,!.
最大身長は(_,_最大身長1,_最大身長1).

身長を得る(_身長) :-
        write('身長を入力してください (終了する時は0) : '),
        readln([_身長]).