Скажет, у меня есть список Пролог фактов, которые блог заголовков, автор и год они были написаны:Сравнение ПРОЛОГА ввода факты
blogpost('Title 1', 'author1' 2012).
blogpost('Title 2', 'author1', 2011).
blogpost('Title 3', 'author1' 2010).
blogpost('Title 4', 'author1', 2006).
blogpost('Title 5', 'author2' 2009).
blogpost('Title 6', 'author2', 2011).
Я хочу написать правило, которое имеет два параметра/входы, автор и год. Если введенный автором написал статью после указанного года, PROLOG вернет true
. Вот что я пробовал:
authoredAfter(X,Z) :-
blogpost(_,X,Z),
Так что, если я опрошен ?- authoredAfter('author1',2010).
ПРОЛОГ вернется true
потому, что автор написал статью в 2010 г. Однако, если я запрашиваю ?- authoredAfter('author1',2009).
, он будет возвращать false
, но я хочу его вернуть true
, потому что автор1 написал статью после этого года.
Вопрос в том, как мне сравнить значение входного сигнала пользователя со значением в факте?
Вашей базы данных имеют некоторые недостающие запятые между автором и годом. Кроме того, каждое предложение должно заканчиваться точкой, а не запятой. –
Спасибо, что пометили это, я написал его в SO сам, поскольку база данных для моей программы (курсовая работа университета) * намного больше и сложнее! –