问题是
布朗、克拉克、琼斯和史密斯是四位重要的公民,他们以建筑师、银行家、医生和律师的身份为社区服务,尽管不一定分别。布朗比琼斯更保守,但比史密斯更自由,他的高尔夫球手比比他大的男人更好,收入也比比克拉克年轻的男人高
比建筑师挣得多的银行家,既不是最年轻的,也不是最年长的。
打高尔夫球比律师差的医生,比建筑师不那么保守
不出所料,最年长的人最保守,收入最高,最年轻的人是最好的高尔夫球手
每个人的职业是什么?
我写过
jobs(L) :- L = [[brown,_,_,_,_,_],
[clark,_,_,_,_,_],
[jones,_,_,_,_,_],
[smith,_,_,_,_,_]],
% [name,job,conservative,golf,income,age]
% conserative: 1 = least conservative, 4 = most conservative
% golf: 1 = worst golfer, 4 = best golfer
% income: 1 = least income, 4 = highest income
% age: 1 = youngest, 4 = oldest
% Brown is more conservative than Jones. Brown is less conservative than Smith.
member([brown,_,C1,_,_,_],L),
member([jones,_,C2,_,_,_],L),
C1 > C2,
member([smith,_,C3,_,_,_],L),
C1 < C3,
% Brown is a better golfer than those older than him.
member([brown,_,_,G1,_,A1],L),
member([_,_,_,G2,_,A2],L),
G1 > G2,
A2 > A1,
% Brown has a higher income than those younger than Clark.
member([brown,_,_,_,I1,_],L),
member([clark,_,_,_,_,A3],L),
member([_,_,_,_,I2,A4],L),
I1 > I2,
A3 > A4,
% Banker has a higher income than architect. Banker is neither youngest nor oldest.
member([_,banker_,_,I3,A5],L),
member([_,architect,_,_,I4,_],L),
I3 > I4,
(A5 = 2;A5 = 3),
% Doctor is a worse golfer than lawyer. Doctor is less conservative than architect.
member([_,doctor,C4,G3,_,_],L),
member([_,lawyer,_,G4,_,_],L),
member([_,architect,C5,_,_,_],L),
G3 < G4,
C4 < C5,
% Oldest is most conservative and has highest income.
member([_,_,4,_,4,4],L),
% Youngest is the best golfer.
member([_,_,_,4,_,1],L).
当我问
?- jobs(L).
我明白了
ERROR: >/2: Arguments are not sufficiently instantiated
我不确定这个错误是什么意思,我相信我已经翻译了所有的线索。