#prolog
#пролог
Вопрос:
Как мне извлечь данные из базы данных, чтобы использовать их в состоянии, но я не хочу печатать их на консоли. Проблема, которую я делаю, заключается в извлечении дочернего элемента из базы данных, возраст родителей которого отличается на 15 лет.
Это код, который я использую, который работает и печатает год обоих родителей.
family(person(_,_,date(_,_,Year1),_),
person(_,_,date(_,_,Year2),_),
[person(Name,Surname,_,_)|Y]), abs(Year1-Year2) >= 15.
Ответ №1:
Определите правило предиката (в исходном файле), используя запрос в качестве его тела. Например:
child_with_parents_age_gap(Gap, Name, Surname) :-
family(
person(_,_,date(_,_,Year1),_),
person(_,_,date(_,_,Year2),_),
[person(Name,Surname,_,_)| _]
),
abs(Year1-Year2) >= Gap.