计算Prolog数据库

时间:2011-03-31 19:35:02

标签: prolog

如何查看查询是否为我提供了特定数量的结果。

因此,例如,我想要检索仅在三个特定比赛中的汽车模型。

汽车谓词是:car(race#,name)。

3 个答案:

答案 0 :(得分:2)

% Car has been on N races
car_with_n_races(Car, N) :-
    length(Races, N),
    findall(Race, car(Race, Car), Races).

如果setof可能会返回重复结果,请使用findall代替car/2

(您可以将来电转换为lengthfindall,但我认为此订单可能更有效。)

答案 1 :(得分:0)

car_with_n_races(Car,N): -     计数(种族(种族,租车),N)。

计数(P,计数): -     的findall(1,P,L),     长度(L,计数)。

答案 2 :(得分:0)

抱歉!

car_with_n_races(Car,N): -     计数(汽车(种族,租车),N)。

计数(P,计数): -     的findall(1,P,L),     长度(L,计数)。