このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1357748713/586
#  [1] 授業単元: プログラミングC 
#  [2] 問題文(含コード&リンク): 
#  キーボードから半角英数で文字列を入力し、英字については大文字を小文字に、小文字を大文字にするプログラムを作成せよ。 
#   
#  実行例 文字列入力 :AbCdEfG123 
#      変換文字列 :aBcDeFg123 
#  

'キーボードから半角英数で文字列を入力し、英字については大文字を小文字に、小文字を大文字にする' :-
        write('文字列入力  : '),
        get_line(_文字列),
        '入力された文字列の英字については大文字を小文字に、小文字を大文字にする'(_文字列,_変換文字列),
        writef('変換文字列  : %t\n',[_変換文字列]).

'入力された文字列の英字については大文字を小文字に、小文字を大文字にする'(_文字列,_変換文字列) :-
        atom_chars(_文字列,_文字ならび),
        '文字ならびの英字については大文字を小文字に、小文字を大文字にする'(_文字ならび,_変換されたもじれならび),
        atom_chars(_変換文字列,_変換された文字ならび).

'文字ならびの英字については大文字を小文字に、小文字を大文字にする'([],[]) :- !.
'文字ならびの英字については大文字を小文字に、小文字を大文字にする'([_文字_1|R1],[_文字_2|R2]) :-
        文字を変換する(_文字_1,_文字_2),
        '文字ならびの英字については大文字を小文字に、小文字を大文字にする'(R1,R2).
'文字ならびの英字については大文字を小文字に、小文字を大文字にする'([_|R1],R2) :-
        '文字ならびの英字については大文字を小文字に、小文字を大文字にする'(R1,R2).

文字を変換する(_文字,_変換された文字) :-
        _文字 @>= 'A',
        _文字 @=< 'Z',
        nth1(_nth1,['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'],_文字),
        nth1(_nth1,[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',
        _文字 @=< 'z',
        nth1(_nth1,[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],_文字),
        nth1(_nth1,['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'],_変換された文字),!.