このディレクトリの索引
#  出題場所
#  
#  お題:与えられた文字列が回文かどうかチェックせよ。 
#  半角アルファベット文字のみを判定の対象とする。大文字小文字の区別はしない。 
#  判定対象文字列のサイズがゼロの場合の判定結果はどちらでもよい。

'与えられた文字列が回文かどうかチェックせよ。
半角アルファベット文字のみを判定の対象とする。大文字小文字の区別はしない。
判定対象文字列のサイズがゼロの場合の判定結果はどちらでもよい。'(_与えられた文字列) :-
        forall(文字列の最初と最後の文字の対が順に(_与えられた文字列,_最初の文字,_最後の文字),大文字小文字の区別はせず一致する(_最初の文字,_最後の文字)).

文字列の最初と最後の文字の対が順に(_文字列,_最初の文字,_最後の文字) :-
        sub_atom(_文字列,0,1,_,_最初の文字列_1),
        sub_atom(_文字列,_,1,0,_最後の文字列_1),
        sub_atom(_文字列,1,_,1,_間の文字列),
        文字列の最初と最後の文字の対が順に(_最初の文字_1,_間の文字列,_最後の文字_1,_最初の文字,_最後の文字).

文字列の最初と最後の文字の対が順に(_最初の文字,_,_最後の文字,_最初の文字,_最後の文字).
文字列の最初と最後の文字の対が順に(_,_間の文字列,_,_最初の文字,_最後の文字) :-
        文字列の最初と最後の文字の対が順に(_間の文字列,_最初の文字,_最後の文字).

大文字小文字の区別はせず一致する(_最初の文字,_最後の文字) :-
        to_upper(_最初の文字列,A),
        to_upper(_最後の文字列,A).