このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1335517816/285
#  [1] 授業単元:プログラミング演習  
#  [2] 問題文:  
#  円の半径rを受け取ると、rからこの半径の円の周囲の長さlと面積sを計算するcircle関数を作成。 
#  そしてmain関数でrを入力すると、circle関数でlとsが計算され、その結果をmain関数で出力するプログラムを作成しなさい。 
#  

main :-
        円の半径の入力(_円の半径r),
        'circle関数'(_円の半径r,_周囲の長さl,_面積s),
        writef('円の半径 %t, 周囲の長さ %t, 面積 %t\n',[_円の半径r,_周囲の長さl,_面積s]).

円の半径の入力(_円の半径r) :-
        get_line(Line),
        円の半径の入力診断(Line,_円の半径r),!.
円の半径の入力(_円の半径r) :-
        円の半径の入力(_円の半径r).

円の半径の入力診断(Line,_円の半径r) :-
        atom_to_term(Line,_円の半径r,_),
        number(_円の半径),
        _円の半径 >= 0.0,!.
円の半径の入力診断(Line,_円の半径r) :-
        writef('入力された %t からは円の半径が得られません。再入力をお願いします。\n',[Line]),
        fail.

'circle関数'(_円の半径r,_周囲の長さl,_面積s) :-
        _周囲の長さl is 2 * _円の半径r * pi,
        _面積s is _円の半径r * _円の半径r * pi.