10/01/29 18:04:23
>>495
% Prolog
問題1 :-
文字ならびの取得(Chars),
取得したならびの反転(Chars,Chars2),
第一文字と最終文字を除外(Chars,L2),
第一文字と最終文字を除外したならびの反転(L2,L3),
第一行目の印字(Chars),
第二行目以降の印字(L2,L3),
最終行の印字(Chars2),!.
文字ならびの取得(Chars) :- get_chars(Chars).
取得したならびの反転(Chars,Chars2) :- reverse(Chars,Chars2),!.
第一文字と最終文字を除外(Chars,L2) :- append([_],L2,[_],Chars),!.
第一文字と最終文字を除外したならびの反転(L2,L3) :- reverse(L2,L3),!.
第一行目の表示(L) :- ならびの文字表示(L),nl,!.
第二行目以降の表示(L2,L3) :- 転置([L1,L3],L4),ならびの行表示(L4),!.
最終行の印字(L3) :- ならびの文字表示(L),nl,!.
ならびの行表示([]) :- write('\n'),!.
ならびの行表示([A|R]) :- write_formatted('%t\n',[A]),ならびの行表示(R).