1
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([_,_|_]).

但是我该如何使用它呢?

谢谢你。

4

0 回答 0