このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1289913298/432
#  [1] 授業単元: 情報処理概論 
#  [2] 問題文(含コード&リンク): 
#  大、中、小の3 個のさいころを同時にふった時、出た目の和がm になるような目の出方をすべて求めるプログラムを作りなさい。 
#  ただし、m の値はキーボードから入力するものとする。表示を工夫して見やすい出力にすること。 
#  

'大、中、小の3 個のさいころを同時にふった時、出た目の和がm になるような目の出方をすべて求めるプログラムを作りなさい。ただし、m の値はキーボードから入力するものとする。' :-
        'm の値はキーボードから入力する'(_m),
        findall([_大の目,_中の目,_小の目],(
                    for(1,_大の目,6),
                    for(1,_中の目,6),
                    for(1,_小の目,6),
                    _m is _大の目 + _中の目 + _小の目),
                L),
        append(_,[[_大の目,_中の目,_小の目]|R],L),
        write_formatted('mが%2dの時、大=%t,中=%t,小=%t\n',[_m,_大の目,_中の目,_小の目]),
        R = [].

'm の値はキーボードから入力する'(_m) :-
        get_line(Line),
        'm の入力診断'(Line,_m),!.
'm の値はキーボードから入力する'(_m) :-
        'm の値はキーボードから入力する'(_m).

'm の入力診断'(Line,_m) :-
        atom_to_term(Line,_m,_),
        integer(_m),
        _m >= 3,
        _m =< 18,!.
'm の入力診断'(Line,_m) :-
        write_formatted('入力された %t からは適切な数値が得られません。再入力をお願いします。\n',[Line]),
        fail.