likes(russel, wittgenstein).
likes(whitehead, wittgenstein).
likes(godel, wittgenstein).
likes(hardy, ramanujan).
likes(littlewood, ramanujan).
at_least_three_fans :-
setof(X, Z^(fact(X, idol), fact(Z, idol)), admirers).
我只想打印 Z : Z = wittgenstein,即,我只想拥有拥有3 个或更多崇拜者的偶像。上述谓词的输出:
?- at_least_three_fans.
idol = wittgenstein,
admirers = [godel, russell, whitehead].
idol = ramanujan,
admirers = [littlewood, hardy].
我想到了以下几点:
at_least_three([_,_|_]).
但是我该如何使用它呢?
谢谢你。