このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1349527750/659
#  [1] 授業単元: C言語 
#  [2] 問題文(含コード&リンク): 
#  ファイル処理 
#  文字列を複数入力した上で、その順番に表示するプログラムを作る。また、その応用で逆に表示するものも作る。 
#  1、文字列はいくらでも入力できる。 
#  2、連結リストにデータを保持する。 
#  3、入力を終わらせる手段を用意する 
#   
#  
/*
'文字列を複数入力した上で、その順番に表示するプログラムを作る。また、その応用で逆に表示するものも作る。 
1、文字列はいくらでも入力できる。 
2、連結リストにデータを保持する。 
3、入力を終わらせる手段を用意する' :-
        '文字列を複数入力した上で連結リストにデータを保持する(#  1、文字列はいくらでも入力できる。 2、連結リストにデータを保持する。 3、入力を終わらせる手段を用意する)'(_連結リスト),
        'その順番に表示する'(_連結リスト).
*/

'文字列を複数入力した上で連結リストにデータを保持する(1、文字列はいくらでも入力できる。 2、連結リストにデータを保持する。 3、入力を終わらせる手段を用意する)'(_連結リスト) :-
        文字列を入力する(_文字列),
        '文字列を複数入力した上で連結リストにデータを保持する(1、文字列はいくらでも入力できる。 2、連結リストにデータを保持する。 3、入力を終わらせる手段を用意する)'(_文字列,_連結リスト).

'文字列を複数入力した上で連結リストにデータを保持する(1、文字列はいくらでも入力できる。 2、連結リストにデータを保持する。 3、入力を終わらせる手段を用意する)'(end_of_file,[]) :- !.
'文字列を複数入力した上で連結リストにデータを保持する(#  1、文字列はいくらでも入力できる。 2、連結リストにデータを保持する。 3、入力を終わらせる手段を用意する)'(_文字列,[_文字列|_残り連結リスト]) :-
        文字列を入力する(_文字列_2),
        '文字列を複数入力した上で連結リストにデータを保持する(1、文字列はいくらでも入力できる。 2、連結リストにデータを保持する。 3、入力を終わらせる手段を用意する)'(_文字列_2,_残り連結リスト).

文字列を入力する(_文字列) :-
        get_line(_文字列).

その順番に表示する([]).
その順番に表示する([_文字列|_残り連結リスト]) :-
        writef('%t\n',[_文字列]),
        その順番に表示する(_残り連結リスト).

逆に表示する([]).
逆に表示する([_文字列|_残り連結リスト]) :-
        逆に表示する(_残り連結リスト),
        writef('%t\n',[_文字列]).