Prolog,找不到if语句的最小数字

时间:2015-09-26 22:59:01

标签: prolog

我目前正在使用tkEclipse作为我的序言,目前我仍然坚持这个问题。

鉴于项目的基本情况及其名称和编号,我需要能够找到最小的数字而不使用if语句等规则。 例如。 anime(gundam, 1978)anime(steins_gate, 2011)anime(prison_school, 2015)。答案会说gundam是最小的数字。这不能是硬编码的,因为如果你要改变知识库,那么它也应该改变答案。此外,如果知识库中只有两个动画,它应该有用。

我正在考虑这样的事情开始:

anime(X, Y)anime(A,B)Y < B,但之后的事情变得棘手,因为不允许使用: -

1 个答案:

答案 0 :(得分:0)

findall(N, anime(A, N), S),
setof(X, member(X,S), [Min|_]).

或者,在一行中:

setof(N, A^anime(A, N), [Min|_]).