Я недавно играл с Прологом и обдумывал, как представлять некоторые задачи, которые я хочу с ним выполнить, которые в основном касаются базы данных фактов и выполнения простых запросов к ней, объединения нескольких фактов вместе *. 1001 *
Но я хочу использовать это в контексте, где я пишу Clojure. И похоже, что core.logi c должен делать то, что я хочу.
Но мне наивно трудно понять, как поместить предикаты basi c Prolog в core.logi c.
Например, как мне представить что-то столь простое, как это в core.logi c:
person(phil).
person(mike).
food(cheese).
food(apple).
likes(phil,apple).
likes(phil,cheese).
И такой запрос, как
food(F),person(P),likes(P,F)
Большинство вводных данных, которые я могу найти, тяжелы в программировании logi c, но не в представлении данных .