为了用事实一个约会数据库的形式:Prolog的数据库查询
person(name, age, sex, height, weight, education, salary)
鉴于输入:
datable(alex, X).
datable_weight_limit(alex, 170, X).
其中170是体重
如何返回潜在匹配的规则名称:
个- 只有异性可以匹配
- 男性应该比女性年长
- 男性应该有更高的教育比女性?
我有这些关系成立:
edu_less(hs, bachelor).
edu_less(bachelor, master).
edu_less(master, phd).
edu_lesser(A, B):-
edu_less(A, X),
edu_lesser(X, B).
我已经试过:
datable(X, Y):-
person(X, Agel, Sexl, Heightl, Weightl, Educationl, Salaryl),
person(Namem, Agem, Sexm, Heightm, Weightm, Educationm, Salarym),
Sexm \== Sexl.
datable(X, Y):-
person(X, Agel, Sexl, Heightl, Weightl, Educationl, Salaryl),
Sexl == female,
findall(X, person(X, _, male, _, _, _, _), Y).
但我似乎没有运气。有没有我失踪的功能或我实施错误的东西?
我认为你缺少下列情况下'edu_lesser(A,B): - edu_less(A,B).' –