Я пытаюсь решить проблему со списками, но не могу ...: (
ИГРОК (КОМАНДА, [ИГРОКИ, КОТОРЫЕ ИГРАЮТ В ЭТУ КОМАНДУ]).
player(milan,[seedorf,zambrotta,gattuso]).
player(inter,[seedorf,ronaldo,zambrotta]).
player(realmadrid,[seedorf,zidane,ronaldo]).
и я пытаюсь написать предикаты, которые возвращают 2 списка; P1 и P2 ...
find(P1,P2).
Например; если моя цель:
find([milan,inter],X). returns X:[seedorf,zambrotta].
players who played juventus and also inter
find([inter,realmadrid],X). returns X:[seedorf,ronaldo]
players who played inter and also realmadrid
find(X,[seedorf]). returns X:[juventus,inter,realmadrid]
teams that seedorf played
find(X,[seedorf,ronaldo]). returns X:[inter,realmadrid]
teams that seedorf and ronaldo played.
Я пытаюсь решить эту проблему, но я не могу пойти дальше этого (и этого даже недостаточно, чтобы попытаться найти членов списка P2 в фактах об игроке :(): БОЛЬШЕ Я НЕ МОГУ ИСПОЛЬЗОВАТЬ «!» Из-за ограничений лекций.
find(P1,[P2|P2s]):-findall(X,player(X,P2),P1),find(P1,P2s).
Большое спасибо ....