Fork me on GitHub
#clojure-russia
<
2016-09-25
>
bernik15:09:31

всем привет. вот у нас есть datalog, который базируется на логическом программировании, есть datomic/datascript, при помощи которого можно писать логические запросы. а как, имея такие инструменты, решать логические задачи? например, одна из самых известных задача эйнштейна http://nazva.net/97/ я несколько дней раздумывал над этим и так ни к чему не пришел. может вы мне сможете помочь.

bernik15:09:31

вот так примерно выглядят входные данные и пара правил для определения соседей и живет ли кто-то слева от другого. остальные условия задачи, по идее, должны быть тоже в виде правил, но я не могу придумать как эти правила связать в запросе

malch19:09:15

тебе нужно логическое программирование в чистом виде, как я понял

bernik20:09:48

@malch я думаю, что ты прав, но надеялся на то, что можно было обойтись просто бд с элементами логического программирования

bernik21:09:02

погуглил немного про core.logic и нашел пост с похожей загадкой и ее решением, http://blog.jenkster.com/2013/02/solving-logic-puzzles-with-clojures-corelogic.html заодно нашелся ответный пост с решением используя обычный for http://programming-puzzler.blogspot.com/2013/03/logic-programming-is-overrated.html?m=1