このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1288531658/243
#  [1] 授業単元:プログラミング演習(テーマ:関数の使い方とデータの受け渡し方) 
#  [2] 問題文(含コード&リンク):関数の再帰呼び出しを用いて、 
#  入力した数値の階乗を求めるプログラムを作成せよ。
#  また、再帰呼び出しをしない場合のプログラムも作成せよ。 
#   

関数の再帰呼び出しを用いて、入力した数値の階乗を求める(_入力した数値,_階乗) :-
        関数の再帰呼び出しを用いて、入力した数値の階乗を求める(_入力した数値,_階乗).

関数の再帰呼び出しを用いて、入力した数値の階乗を求める(1,1).
関数の再帰呼び出しを用いて、入力した数値の階乗を求める(N,_階乗) :-
        N_1 is N - 1,
        関数の再帰呼び出しを用いて、入力した数値の階乗を求める(N_1,_階乗_1),
        _階乗 is N * _階乗_1.

/*
入力した数値(_入力した数値) :-
        write('正の整数を入力してください : '),
        get_line(Line),
        キーボードからの入力診断(Line,_入力した数値),!.
入力した数値(_正の整数) :-
        入力した数値(_入力した数値).

入力した数値診断(Line,_入力した数値) :-
        atom_to_term(Line,_入力した数値,_),
        integer(_入力した数値),
        _入力した数値 > 0,!.
入力した数値診断(Line,_) :-
        write_formatted('入力された %t からは正の整数が得られませんでした。再入力をお願いします。\n',[Line]),
        fail.
*/