Извлечение данных из базы данных без печати

#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.