clojure-core.logic相关内容
我正在阅读The Reasoned Schemer. 我对 conde 的工作原理有一些直觉. 然而,我找不到什么conde/conda/condu/condi的正式定义做. 我知道 https://www.cs.indiana.edu/~webyrd/ 但似乎有例子而不是定义. 有没有conde、conda、condi、condu的正式定义? 解决方案 在 Pro
..
clojure.core.logic似乎在行走时出现问题.最小的失败示例: (运行* [q](== q#{})) 产生 java.lang.StackOverflowError在clojure.core.logic.Substitutions.walk(logic.clj:344)在clojure.core.logic $ walk_STAR_ $ fn_ 2633.invoke
..
我正在使用Mac OS.我想使用(使用'[clojure.java.shell:only [sh]])执行系统命令,就像在 (sh"/bin/sh""-c""echo $ {TERM} | tr x u") (请注意,"shell代码"只是一个参数)
..
当试图通过API文档理解core.logic时,我遇到了非关系目标和关系目标.我不知道这在实践中意味着什么,为什么要注释目标(无论它们是否相关)为何很重要. 您能否举例说明目标的使用方式,取决于它们是否相关? 解决方案 为了解释什么是非关系型,我们需要重新研究relational的含义. 如果在函数式编程中考虑纯函数,则它们总是返回一个值,并且对于相同的输入参数,将返回相同的输
..
在Prolog-人工智能编程中,Bratko在第58页上说了以下内容. "Prolog中的匹配对应于逻辑上的统一.但是,我们避免使用统一一词,因为出于效率原因,在大多数Prolog系统中,匹配的实现方式并不完全对应于统一.需要所谓的发生检查:给定变量是否在给定条件下出现?发生检查会使匹配效率低下." 我的问题是,miniKanren中的统一会遭受这种效率损失还是如何解决? 解决方
..
我不知道为什么当使用-5作为域值之一时下面的代码不返回任何结果 user => (run * [q](infd q(domain -5 5))(* fd q q 25)) () user => (run * [q](infd q(domain 0 5))(* fd qq 25)) (5) $ b b 注意:此代码指的是core.logic 0.8.0 beta版中的行为。
..
我正在使用Clojure的core.logic CLP(FD)库(core.logic版本0.8.3)使用一个朴素的方块打包算法。 表示如下: [[[x11 y11] [x12 y12]] [[x21 y21] [ x22 y22] ...]] ,每个正方形表示为其左上角和右下角。 坐标是FD变量,在一定的时间间隔内。 $
..
我正在阅读推理的Schemer 。 我有一些关于 conde 如何工作的直觉。 ,我找不到一个正式的定义 conde / conda / condu / condi do。 我知道
..