このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1272006124
# <問題>
# 全社員が売上を記録した日を求めよ。 
# これを Prolog プログラムとして表現しなさい。

売上(稲葉,'20140228').
売上(尾崎,'20140227').
売上(稲葉,'20140226').
売上(尾崎,'20140226').
売上(尾崎,'20140226').
売上(尾崎,'20140228').

社員(尾崎).
社員(稲葉).

'全社員が売上を記録した日を求めよ。'(_全社員が売上を記録した日) :-
        findsetof(_日,売上(_,_日),L),
        member(_全社員が売上を記録した日,L),
        forall(社員(_社員),売上(_社員,_全社員が売上を記録した日)).

findsetof(A,B,L) :-
        findall(A,B,C),
        setof(A,member(A,C),L) .