このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1294061094/155
#  [1] 授業単元:Cプログラミング 
#  [2] 問題文(含コード&リンク): 
#   char型の配列を適当に大きなサイズで宣言し、その中に1文字ずつ、改行が来るまで 
#  格納しなさい(改行コードは格納しない。) 。その後で、入力された文字列を逆順で出力しなさい。 
#  例えば、入力された文字がdogならばgodになる。 
#  

適当なサイズ(1000).

'ならびを適当に大きなサイズで確保し、その中に1文字ずつ、改行が来るまで格納しなさい(改行コードは格納しない。) 。その後で、入力された文字列を逆順で出力しなさい。'(_ならび)  :-
        ならびを適当に大きなサイズで確保し(_ならび),
        その中に1文字ずつ、改行が来るまで格納しなさい(_ならび),
        その後で、入力された文字列を逆順で出力しなさい(_ならび).

ならびを適当に大きなサイズで確保し(_ならび) :-
        適当なサイズ(_適当なサイズ),
        length(_ならび,_適当なサイズ).

その中に1文字ずつ、改行が来るまで格納しなさい(_ならび) :-
        get_char(_文字),
        その中に1文字ずつ、改行が来るまで格納しなさい(_文字,_ならび).

その中に1文字ずつ、改行が来るまで格納しなさい('\n',_) :- !.
その中に1文字ずつ、改行が来るまで格納しなさい(_文字,[_文字|R]) :-
        get_char(_文字2),
        その中に1文字ずつ、改行が来るまで格納しなさい(_文字2,R).

その後で、入力された文字列を逆順で出力しなさい(_ならび) :-
        その後で、入力された文字列を逆順で出力しなさい(_ならび,[],_逆順ならぴ),
        put_lines(_逆順ならび).

その後で、入力された文字列を逆順で出力しなさい([_変数|_],_逆順ならび,_逆順ならぴ) :-
        var(_変数),!.
その後で、入力された文字列を逆順で出力しなさい([A|R1],L1,_逆順ならぴ) :-
        その後で、入力された文字列を逆順で出力しなさい(R1,[A|L1],_逆順ならぴ).