このディレクトリの索引
http://pc12.2ch.net/test/read.cgi/tech/1276810079/316
#  http://ime.nu/kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10760.txt 
#  
# (1)複数の文字列を読み込み,さらに,それらの文字列を繋ぎ合わせる順番を入力し結果を出力するプログラムを作成せよ.
# 
# 【実行例】
# 
# 何個の文字列を入力しますか?:3
# 入力文字列[1]:B
# 入力文字列[2]:A
# 入力文字列[3]:C
# 
# 繋ぎ合わせる順番を入力してください。
# 2
# 1
# 3
# 
# 結果 -> ABC
# 
# (2)入力した文字配列中に,abcという並びがいくつあるか調べるプログラムを作成せよ.
# 
# 【実行例】 
# 
# 1abfaabcabc
# gatagataabc
# (ここで ^D を押す)
# #ABC is 3
# 

複数の文字列を読み込み,さらに,それらの文字列を繋ぎ合わせる順番を入力し結果を出力する :-
        催促付き整数入力('文字列の個数を予約してください : ',N),
        findall(S,(
                    for(1,_,N),write_formatted('入力文字列[%t] : ',[M]),
                    get_line(S)),
                L1),
        write('繋ぎ合わせる順番を入力してください。\n'),
        findall(N2,(for(1,_,N),get_integer(N2)),L2),
        文字列のならびの並べ替え(L1,L2,L),
        concat_atom(L,_繋ぎ合わされた文字列),
        write_formatted('%t\n',[_繋ぎ合わされた文字列]).

文字列のならびの並べ替え(L1,[],[]) :- !.
文字列のならびの並べ替え(L1,[N|R2],[L2|R3]) :-
        list_nth(N,L1,L2),
        文字列のならびの並べ替え(L1,R2,R3).

'入力した文字配列中に,abcという並びがいくつあるか調べる' :-
        get_chars(Chars),
        count(append(_,[a,b,c|_],Chars),Count),
        write_formatted('#abc = %t\n'[Count]).