Создать базу данных знакомств с фактами в виде:
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).
Но мне, кажется, не повезло.Есть ли какая-то функция, которую я пропускаю или что-то неправильно реализую?