首先,这是我目前的代码:
number_book(111, brave_new_world).
number_book(222, lord_of_the_flies).
number_book(333, fight_club).
number_book(444, wind_in_the_willows).
number_book(555, the_hobbit).
author_book(huxley_aldus, brave_new_world).
author_book(golding_william, lord_of_the_flies).
author_book(palahniuk_chuck, fight_club).
author_book(grahame_kenneth, wind_in_the_willows).
author_book(tolkien_jrr, the_hobbit).
author_fore_sur(huxley_aldus, aldus, huxley).
author_fore_sur(golding_william, william, golding).
author_fore_sur(palahniuk_chuck, chuck, palahniuk).
author_fore_sur(grahame_kenneth, kenneth, grahame).
author_fore_sur(tolkien_jrr, jrr, tolkien).
id_sur_fore(1202, smith, john).
id_sur_fore(1332, thompson, kevin).
id_sur_fore(4556, anderson, edward).
house_post_id(5, dh1_3pr, 1202).
house_post_id(123, ne3_4ty, 1332).
house_post_id(45, dh3_6kl, 4556).
borrowed_id(333, 1202).
borrowed_id(222, 1332).
borrowed_id(555, 4556).
book_out(333,11_06_2014).
book_out(222,15_06_2014).
book_out(555,17_06_2014).
book_in(333, 19_06_2014).
book_in(222, 26_07_2014).
book_in(555, 01_07_2014).
due_date(D) :- book_in(N, D1), D @< D1.我想要做的是确定哪些书是借来的,哪些是借给谁的,以及这本书是否过期了。由于缺乏Prolog的经验,我没有最模糊的开始,任何帮助都将不胜感激。
发布于 2014-06-19 14:09:40
我建议您使用date(Year, Month, Day)来表示日期。然后您可以使用@</2对它们进行比较。要了解哪本书在某一天借出,您可以使用如下规则:
on_loan(D, Title):-
book_out(Id, D1), D1 @=< D,
book_in(Id, D2), D @< D2,
number_book(Id, Title).现在,要在特定的一天内借出所有的书籍:
all_on_loan(D, All) :- findall(Title, on_loan(D, Title), All).如果你对今天借来的所有书籍感兴趣:
all_on_loan_today(All) :- date(D), all_on_loan(D, All).https://stackoverflow.com/questions/24306166
复制相似问题