このディレクトリの索引
http://pc12.2ch.net/test/read.cgi/tech/1258158172/123 
#  [1] 授業単元:プログラミング 
#  [2] 問題文(含コード&リンク): 
#  文字列GHIJKLMABCDERSTUVWFNOPQXYZに対して入力した文字列の第1文字目と第2文字目の間にある文字列を表示するプログラムを作る。 
#  例:入力文字列がCQであったときCDERSTUVWFNOPQを表示する。

文字列('GHIJKLMABCDERSTUVWFNOPQX').

文字列から入力された第1文字目と第2文字目の間にある文字列を取り出して表示する(_第1文字目,_第2文字目,_表示する副文字列) :-
文字列から(_文字列),
入力された第1文字目と第2文字目の間にある文字列を取り出して表示する(_文字列,_第1文字目,_第2文字目).

文字列から(_文字列) :-
文字列(_文字列).

入力された第1文字目と第2文字目の間にある文字列を取り出して表示する(_文字列,_第1文字目,_第2文字目) :-
副文字列(_文字列,_前文字列,_副文字列,_後文字列),
入力された第1文字目と第2文字目の間にある(_第1文字目,_第2文字目,_前文字列,_後文字列).

副文字列(_文字列,_前文字列,_副文字列,_後文字列) :-
atom_concat(_前文字列,_残り文字列,_文字列),
atom_concat(_副文字列,_後文字列,_残り文字列).

入力された第1文字目と第2文字目の間にある(_第1文字目,_第2文字目,_前文字列,_後文字列) :-
sub_atom(_前文字列,_,1,0,_第一文字目),
sub_atom(_後文字列,0,1,_,_第二文字目).

表示する(_副文字列) :-
writef('%w\n',[_副文字列]).