このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1288531658/172
#  [1] 授業単元: アルゴリズムとデータ構造 
#  [2] 問題文(含コード&リンク):  
#   typedef struct{char name[256]; unsigned char sex; unsigned char age;} PERSONAL_DATA 
#  上記の構造体PERSONAL_DATA型の配列(要素数n)に格納された 
#  n人の名前・性別・年齢のデータの中から同じ年齢の2人組の名前を全て表示せよ。 
#  

%  n人が反映されていない。

'n人の名前・性別・年齢のデータの中から同じ年齢の2人組の名前を全て表示せよ' :-
        findsetof(_年齢,個人データ(_名前,_性別,_年齢),_年齢ならび),
        append(_,[_年齢|R],_年齢ならび),
        findall(_氏名,個人データ(_名前,_性別,_年齢),_氏名ならび),
        同じ年齢の2人組の名前を表示(_年齢,_氏名ならび),
        R = [].

同じ年齢の2人組の名前を表示(_,[]) :- !.
同じ年齢の2人組の名前を表示(_,[_]) :- !.
同じ年齢の2人組の名前を表示(_年齢,_氏名ならび) :-
        write_formatted('年齢=%t',[_年齢]),
        組み合わせ(_氏名ならび,2,L),
        write_formatted(' (%t,%t)',L),
        fail.
同じ年齢の2人組の名前を表示(_,_) :-
        write('\n').