このディレクトリの索引
#  [1] 授業単元: 
#  [2] 問題文 
#  今テキストファイルAが1つとBが10個あるとする。 
#  Aには 
#  haru 
#  natsu 
#  aki 
#  fuyu 
#  とかかれ 
#  Bにはそれぞれのテキストに以下のような文字列がかかれている 
#  wheiowfjhoiejwio2121oij3io12ji2oj3io2j3oijo 
#  iouaiojoiajwioejio121j3oi1j2iojlajia 
#  これらをまとめ 
#  テキストCに 
#  aki[tab]wheiowfjhoiejwio2121oij3io12ji2oj3io2j3oijo[改行] 
#  natsu[tab]iouaiojoiajwioejio121j3oi1j2iojlajia[改行] 
#  になるようなプログラムをかけ 
#  ただし。Bのそれぞれのテキストは非常に長くても大丈夫にせよ。 
#  [3] 環境 [3.1] OS:linux 
#   [3.2] gcc 
#   [3.3 C 
#  [4] 期限: 5/23 

'今テキストファイルAが1つとBが10個あるとする。
Aには
haru
natsu
aki
fuyu
とかかれ
Bにはそれぞれのテキストに以下のような文字列がかかれている
wheiowfjhoiejwio2121oij3io12ji2oj3io2j3oijo
iouaiojoiajwioejio121j3oi1j2iojlajia
これらをまとめ
テキストCに
aki[tab]wheiowfjhoiejwio2121oij3io12ji2oj3io2j3oijo[改行]
natsu[tab]iouaiojoiajwioejio121j3oi1j2iojlajia[改行]
になるようなプログラムをかけ
ただし。Bのそれぞれのテキストは非常に長くても大丈夫にせよ。'(_テキストファイルA,_ならびB,_テキストファイルC) :-
テキストファイルAとならびBに現れるファイルを結合してテキストファイルCにかく(_テキストファイルA,_ならびB,_結合ならび).

テキストファイルAとならびBに現れるファイルを結合してテキストファイルCにかく(_テキストファイルA,_ならびB,_テキストファイルC) :-
テキストファイルAとならびBに現れるファイルを結合して(_テキストファイルA,_ならびB,_結合ならび),
テキストファイルCにかけ(_テキストファイルC,_結合ならび).

テキストファイルAとならびBに現れるファイルを結合して(_テキストファイルA,_ならびB,_結合ならび) :-
get_lines(_テキストファイルA,Lines),
テキストファイルAとならびBに現れるファイルを結合して(Lines,_ならびB,_結合ならび).

テキストファイルAとならびBに現れるファイルを結合して(Lines,_ならびB,_結合ならび) :-
findall(_結合した行,(
nth1(_nth1,Lines,Line),
テキストファイルAの一行とならびBに現れるファイルの全文を結合する(Line,_nth1,_ならびB,_結合した行)),_結合ならび).

テキストファイルAの一行とならびBに現れるファイルの全文を結合する(Line,_nth1,_ならびB,_結合した行) :-
ならびBに現れるファイル(_nth1,_ならびB,Chars),
append(Line,['\t'|Chars],L),
atomic_list_concat(L,_結合した行).

ならびBに現れるファイル(_nth1,_ならび,Chars) :-
nth1(_nth1,_ならびB,File),
get_chars(File,Chars).

テキストファイルCにかけ(_テキストファイルC,_結合ならび) :-
tell(_テキストファイルC),
forall(member(_行,_結合ならび),
writef('%t\n',[_行])),
told.