このディレクトリの索引
# 現在または過去に所属しているコーチの髪の色(C)と少なくともそれより大きい年齢(A)が与えられた時,
# プレーヤー(P)の現在または過去に所属したチーム(L1)を探します。

'現在または過去に所属しているコーチの髪の色(C)と少なくともそれより大きい年齢(A)が与えられた時,プレーヤー(P)の現在または過去に所属したチーム(L1)を探します。'(P,C,A,L1) :-
        find(P,C,A,L1).

find(P,C,A,L1) :-
        setof(P1,(
                 coach(Name,C,A1),
                 A1 > A,
                 team(Team1,Name),
                 player(Team1,L2),
                 append(_,[P1|_],L2)),
              L3),
        append(_,[P|_],L3),
        findall(Team2,(
                    player(Team2,L4),
                    append(_,[P|_],L4)),
              L1).

% **COACH(NAME,SKIN COLOR,AGE)**
coach(allegri,blonde,45).
coach(leonardo,dark,42).
coach(mourinho,blonde,40).

% **TEAM(NAME,COACH)**
team(milan,allegri).
team(inter,leonardo).
team(realmadrid,mourinho).

% **PLAYER(TEAM,[PLAYERS])**
player(milan,[seedorf,zambrotta,gattuso]).
player(inter,[seedorf,ronaldo,zambrotta]).
player(realmadrid,[seedorf,zidane,ronaldo]).