このディレクトリの索引
#  大学の試験で出題された問題 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パラメータに求める
%
%  IF/Prologによる別解 組込述語 compare/3を使ってみよう。
%  

comp(L1,[],L3) :-
        findall(gt,member(_,L1),L3).
comp([],L2,L3) :-
        findall(lt,member(_,L2),L3).
comp([A|R1],[B|R2],[_記号2|R3]) :-
        compare(_記号1,A,B),
        比較記号(_記号1,_記号2),
        comp(R1,R2,R3).

比較記号(>,gt).
比較記号(<,lt).
比較記号(=,eq).