% Knowledgebase
parents (pedro, jose).
parents (pedro, john).
parents (pedro, mary).
parent (john, leidis).
parent (john, marten).
parents (leidis, berta).
parents (berta, pepe).
它具有上述知识库,父母在其中互动和孩子(第一个要素是父亲和第二个儿子),是发展一个宣扬这一点,因为父母已经归还了许多孩子。根据先前的知识,以下问题的答案是:
? - Cant_hijos (pedro, Cant).
Qty = 3
? - Cant_hijos (john, Cant).
Qty = 2
? - Cant_hijos (leidis, Cant).
Qty = 1
cant_hijos(P, N) :-
setof(C, parent(P,C), Cs),
length(Cs, N).
请注意,对于零个子项,它失败了。问是没有意义的:
?- cant_hijos(P, 0).
因为有无数个名字不是父母。