作为开始使用core.logic的一种方式,我决定通过'九十九个Prolog问题'来解决......
https://github.com/rodnaph/99-core-logic-problems
但是在经历了一些问题之后,根据我目前的理解,它并不像core.logic那样是解决这些问题的正确方法(因为它们只需要一个答案)。
我可能误解了关系方法,但我是在咆哮错误的树吗?我应该只使用Prolog吗?
干杯。
答案 0 :(得分:2)
最初的问题是Prolog,在Prolog中,关系方法是你唯一的方法。这些问题中的大多数实际上是伪装的函数式编程,并且没有使用回溯,因此在Clojure中使用core.logic
并不是惯用的。
也就是说,Prolog的一个优点是你经常可以向后运行它们(主要是简单的),以生成所有可能的解决方案。例如,您可以通过向后运行append
找到将列表拆分为两个部分的所有方法。