このディレクトリの索引

http://pc12.2ch.net/test/read.cgi/tech/1276810079/919
#  [1] C言語プログラミング演習  
#  [2] 問題文(含コード&リンク  
#   char型配列xに格納された英単語からなる文字列が回文(逆から読んでも同じ)であるかをチェックする関数anagram(char [])を作成せよ.ただし,チェック対象の文字列はソースコードのmain()関数内で記述するものとする(キーボードから入力しない).  
#   
#   
#   % ./checkAnagaram 
#   文字列 "spainyuusyou" は回文ではありません. 
#   
#   % ./checkAnagaram 
#   文字列 "Was it a cat I saw?" は回文です. 
#   
#  ヒント: 回文のルールは以下の通り.  
#   
#  (i) 
#  前から読んでも後ろから読んでも同じアルファベットの並びとな る,  
#  (ii) 
#  記号「?」,「.」,「,」,「-」,「 」(空白)は無視する,  
#  (iii) 
#  大文字と小文字は区別をしない.  
#  

回文(A) :- atom_chars(A,Chars),回文(Chars,[],X,X).

回文([],X,X,[]) :- !.
回文([A|R1],L1,X,R2) :- member(A,['?','.',',','-',' ']),回文(R1,L1,X,R2),!.
回文([A|R1],L1,X,[B|R2]) :- to_upper(A,B),回文(R1,[B|L1],X,R2),!.