このディレクトリの索引
http://pc12.2ch.net/test/read.cgi/tech/1258158172/664
#  [1] C言語 
#  [2] 問題文(含コード&リンク): 
#  問題3  
#  標準入力からの入力に対して、アルファベットの文字を3文字ず 
#   らして標準出力に出力するシーザー暗号化プログラムを作成し 
#   て、rep09.c として提出せよ。具体的には, 小文字に対しては 
#   a -> d, b -> e, ..., w -> z, x -> a, y -> b, z -> c なる 
#   変換である。もちろん大文字に関しても同様の変換処理をしな 
#   ければならない。 
# 

アルファベット(小文字,[a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z]). 
アルファベット(大文字,['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']). 

program :- rep03. 

rep03 :- get_char(Char), アルファベットならびの選択(Char,L),rep03(Char,L). 

rep03(end_of_file,_). 
rep03(Char,L) :- 
    list_nth(N,L,Char), 
    ならびの回転(左方向,3,L,L3), 
    list_nth(N,L3,A), 
    put_char(A), 
    get_char(Char2), 
    アルファベットならびの選択(Char2,L2), 
    rep03(Char2,L2). 

アルファベットならびの選択(Char,L) :- Char @>= a,Char @=< z,アルファベット(小文字,L). 
アルファベットならびの選択(Char,L) :- Char @>= 'A',Char @=< 'Z',アルファベット(大文字,L).