このディレクトリの索引
http://pc12.2ch.net/test/read.cgi/tech/1274827528/258
#  [1] 授業単元:プログラム演習  
#  [2] 問題文(含コード&リンク): 
#  任意の文字列を二つ入力し、一つ目の文字列から二つ目の文字列を「全て」検索するプログラムを実装しなさい。 
#  検索結果は、一つ目の文字列を0文字目から数えて、何文字目にあるかを答えるようにしなさい。以下に実行例を示す。 
#    
#  http://ime.nu/kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10648.txt 
#   
#  
# 文字列を入力してください。
# helloeveryone
# 検索文字列を入力してください。
# eve
# 文字列「eve」は5文字目から7文字目に存在します。
# 
# 文字列を入力してください。
# helloeveryone
# 検索文字列を入力してください。
# two
# 文字列「two」は存在しません
# 

任意の文字列を二つ入力し、一つ目の文字列から二つ目の文字列を「全て」検索する :-
        任意の文字列を二つ入力し、(_一つ目の文字列,_二つ目の文字列),
        一つ目の文字列から二つ目の文字列を「全て」検索する(_一つ目の文字列,_二つ目の文字列).

任意の文字列を二つ入力し、(_一つ目の文字列,_二つ目の文字列) :-
        write('文字列を入力してください。  \n'),
        get_line(_一つ目の文字列),
        write('検索文字列を入力してください。\n'),
        get_line(_二つ目の文字列).

一つ目の文字列から二つ目の文字列を「全て」検索する(_一つ目の文字列,_二つ目の文字列) :-
        少なくとも一つは存在する(_一つ目の文字列,_二つ目の文字列),
        「全て」検索する(_残り文字列,_二つ目の文字列,_開始位置,_長さ,_残り長さ),!.
一つ目の文字列から二つ目の文字列を「全て」検索する(_,_二つ目の文字列) :-
        write_formatted('文字列「%t」は存在しません。\n',[_二つ目の文字列]).

少なくとも一つは存在する(_一つ目の文字列,_二つ目の文字列) :- sub_atom(_一つ目の文字列,_,_,_,_二つ目の文字列).

「全て」検索する(_一つ目の文字列,_二つ目の文字列,_開始位置,_長さ) :-
        sub_atom(_一つ目の文字列,_開始位置,_長さ,_,_二つ目の文字列),
        _終了位置 is _開始位置 + _長さ - 1,
        write_formatted('文字列「%t」は%t文字から%t文字目に存在します。\n',[_二つ目の文字列,_開始位置,_終了位置]),
        fail.
「全て」検索する(_,_,_,_) :- !.