このディレクトリの索引
#  大学の試験で出題されたもの by @shokinon on twitter at 2011-08-10
#  
#  Prologプログラムcomp(L1,L2,Result)を作成せよ。ただし、リストの個数が
#  異なるときは、リストがない方を小さいとする。
#  comp([6,2,4,3],[1,2,5],R). の実行結果は、R = [gt.eq,lt,gt]. である。
#  具体的には、L1のリストのi番目をL_1i , L2のリストのi番目をL_2i としたとき、
#  L_1i > L_2iのときはgt、L_1i < L_2i のときは、lt、L_1i = L_2iのときは
#  eqと第3パラメータに求める

comp([],[],[]).
comp([_|R1],[],[gt|R3]) :-
        comp(R1,[],R3).
comp([],[_|R2],[lt|R3]) :-
        comp([],R2,R3).
comp([A|R1],[A|R2],[eq|R3]) :-
        comp(R1,R2,R3).
comp([A|R1],[B|R2],[gt|R3]) :-
        A > B,
        comp(R1,R2,R3).
comp([A|R1],[B|R2],[lt|R3]) :-
        A < B,
        comp(R1,R2,R3).