【发布时间】:2011-08-17 16:52:29
【问题描述】:
我尝试解决有关列表的问题,但我不能... :(
球员(球队,[在那个球队踢球的球员])。
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).
非常感谢....
【问题讨论】: