?- 'a##'. c137-918#
このディレクトリの索引
http://pc12.2ch.net/test/read.cgi/tech/1276810079/918
#  [1] C言語プログラミング演習  
#  [2] 問題文(含コード&リンク  
#  char型配列xに格納された文字列を1文字ごとに空白を空けて逆順に出力する関数reverse_array(char [])を作成せよ.変換後の文字列の長さがもとの文字列よりも長くなっているので、長さの検査が必要であることに注意せよ。 
#  この関数を用いて、入力された文字列を並び替え、その結果を印字するプログラムを作成せよ。  
#   
#   
#   % ./reverse 
#   処理前の文字列 (64字まで)? kimatutest 
#   関数reverse_array()を呼び出しました 
#   処理後の文字列 "t s e t u t a m i k" 
#  

文字列を1文字ごとに空白を空けて逆順に出力する(_文字列) :-
        文字列を1文字ごとに空白を空けて逆順に出力する(_文字列,_1文字ごとに空白を空けた逆順文字列),
        write_formatted('%t',[_1文字ごとに空白を空けた逆順文字列]).

文字列を1文字ごとに空白を空けて逆順に出力する(_文字列,_1文字ごとに空白を空けた逆順文字列) :-
        atom_chars(_文字列,Chars),
        concat_atom(Chars,' ',_1文字ごとに空白を空けた逆順文字列).


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

文字列を1文字ごとに空白を空けて逆順に出力する(_文字列,_1文字ごとに空白を空けた逆順文字列) :-
        atom_chars(_文字列,Chars),
        文字列を1文字ごとに空白を空けて逆順に出力する(Chars,Chars2),
        atom_chars(_1文字ごとに空白を空けた逆順文字列,Chars2).

文字列を1文字ごとに空白を空けて逆順に出力する([],[]).
文字列を1文字ごとに空白を空けて逆順に出力する([A],[A]).
文字列を1文字ごとに空白を空けて逆順に出力する([A|R1],[A,' '|R2]) :-
        文字列を1文字ごとに空白を空けて逆順に出力する(R1,R2).