今天刚学的,写的有点土,不过结果正常就行了。
rule(X):- member(a, X).
rule(X):- member(b, X).
rule(X):- member(a, X),member(b, X).
rule2(X):- member(a, X),member(e, X),\+member(f, X).
rule2(X):- member(a, X),member(f, X),\+member(e, X).
rule2(X):- member(e, X),member(f, X),\+member(a, X).
rule3(X):- member(b, X),member(c, X).
rule3(X):- \+member(b, X),\+member(c, X).
rule4(X):- member(a, X),\+member(d, X).
rule4(X):- member(d, X),\+member(a, X).
rule5(X):- member(c, X),\+member(d, X).
rule5(X):- member(d, X),\+member(c, X).
rule6(X):- \+member(d, X),\+member(e, X).
rule6(X):- member(d, X),member(e, X).
rule6(X):- member(d, X),\+member(e, X).
meeting(X,L):- me(X,L),rule(X),rule3(X),rule2(X),rule4(X),rule5(X),rule6(X).
me([A],L):- member(A,L).
me([A,B],L):- member(A,L),member(B,L).
me([A,B,C],L):- member(A,L),member(B,L),member(C,L).
me([A,B,C,D],L):- member(A,L),member(B,L),member(C,L),member(D,L).
me([A,B,C,D,E],L):- member(A,L),member(B,L),member(C,L),member(D,L),member(E,L).
输入meeting(What,[a,b,c,d,e,f]),结果就出来了。
2013年10月26日 13点10分
3