我的知识库中有以下事实: distance(c2, c5, 20, 1) 。 但是当我尝试查询distance(c2, c5, X-0, 1)时(或任何其他数字而不是 0),这将返回 false。 这是为什么? 因为 20-0=20,X 不应该只绑定到 20 吗? ...
我的知识库中有以下事实: distance(c2, c5, 20, 1) 。 但是当我尝试查询distance(c2, c5, X-0, 1)时(或任何其他数字而不是 0),这将返回 false。 这是为什么? 因为 20-0=20,X 不应该只绑定到 20 吗? ...
我正在使用 Racket v8.5,带有 minikanren 和需要 minikanren/数字。 为什么要引入 numbero 约束导致以前有效的统一失败? ...
赏金将在 2 天内到期。 此问题的答案有资格获得+500声望赏金。 查理帕克想引起更多的关注这个问题。 ...
在 prolog 中, A = B和A == B之间的区别在于=试图将A与B统一,而==只有在A和B已经统一的情况下才会成功。 member/2似乎确实执行了统一。 示例会话: 我一直在寻找,但找不到member/2的非统一替代方案,但没有找到任何东西。 有内置的东西还是我必须发明自己的东 ...
我有这个 Prolog 代码: 这个查询: 返回X = c 如果我有这个程序,它有点不同: 在同一个查询 为什么它返回 ...
我正在使用 swi-prolog 在 Prolog 课程的背景下为学生制作一些示例。 关于统一,我想提请他们注意统一过程中无限递归的危险。 但是,成熟的 Prolog 实现(如 swi-prolog)足够智能,可以在大多数情况下避免统一过程的无限递归。 在所有情况下都是如此,还是可以构建更复杂的例 ...
我在 Javascript 中有一个纯功能传感器实现,它支持环路融合和短路。 请注意,虽然我使用的是 JS,但这并不是理解问题的必要条件。 只有类型很重要。 // ((a -> r) -> r) -> Cont r a const Cont = k => ({run: k ...
我一直在为 Javascript 开发类型验证器,以便为最初为动态类型设计的语言启用渐进类型。 类型验证意味着只对具有显式类型注释的术语进行类型检查,但没有推理。 不幸的是,这种方法是不合理的,因为它允许将程序键入如下: 这种类型检查,因为类型推断被绕过。 但是, r没有任何价值,因为 funct ...
我正在学习numpy和pandas ,所以如果我没有使用正确的术语或者我问了一些愚蠢的问题,请原谅我。 我花了很长时间在网上搜索我的问题的答案,但没有运气...... 我有几个.CSV 文件,其中包含同一域中的数据。 每个文件都有一个列,该列用作每一行的主键。 每个文件中主键列的名称可能不同。 每个 ...
这是刚性类型变量 escaping 和 scope 的典型示例: 我试图通过手动进行统一/包含来重现错误: 据我所知,刚性类型变量(skolem 常量)只能包含在自身之下或与不允许前者逃脱其 scope 的元(统一)类型变量统一,即元电视不能在scope 刚性电视最初是 skolemized。 因 ...
使用不使用 function 符号而仅使用常量和变量的 Prolog 子集可以轻松识别数据日志。 但是不使用否定的纯 Datalog 有一个进一步的约束(*): 每一个事实都是有根据的。 规则头部的每个变量,也出现在规则的主体中。 我们能否得出结论,单面统一足以回答分层 Datalog 查询? 或 ...
受这个问题的启发,我正在努力纠正错误处理反向/2。 所以我尝试了这个实现: 一切正常,直到我尝试使用 reverse/2 作为生成器: 单面统一可以改变这种情况吗,一些基于单面统一的典型解决方案,以便生成器reverse(X,Y)仍然可以工作? SWI-Prolog 8.3.19 中提供了单面统 ...
我试过这个香草解释器: 我们可以用它来元解释一些代码吗? 我试过这段代码, 需要 SWI-Prolog 8.3.19,它可以正常运行: 但是元解释出错了。 原因是条款/2 不知道使用单面统一的规则: 元解释器和单面统一是否有解决方案? ...
如果量词出现在逆变 position: f:: (forall a. [a] -> b) -> Bool 关于这种类型的统一,类型变量a比b更严格,因为适用以下实例化规则: a可以使用灵活的类型变量进行实例化,前提是这不允许a转义其 scope 或使用另一个刚性类型变量但不是非抽象类 ...
Originally I assumed the scope of a nested universal quantifier on the LHS of a function type can be determined purely syntactical, ie everything in ...
SWI-Prolog 的新版本 8.3.19 在新的 Picat 样式规则中引入了单面统一。 这可能是对任何 Prolog 系统的欢迎补充。 我想知道我们是否可以重写奎因算法奎因算法的 Prolog 实现 https://\stackoverflow.com/q/63505466/502187 ...
我能够统一以下术语: 但是我坚持为以下统一应用正确的规则,因为foo需要一个三元 function 但bar只有两个 arguments: 推断类型来自 GHCI。 我如何到达那里? ...
AFAIK,Hindley-Milner 类型系统中使用的统一可以通过在构造函数 position 中允许类型 var 并在这种情况下放宽 arity 约束来推广以统一更高种类的类型: 我想还涉及种类,但我不知道如何。 以我的一点经验,我会说这对于高级类型的声音统一来说已经足够了。 与高阶统一的主 ...
有一个关于 prolog 中的 mgu(最通用的统一器)的快速问题。 我们被问到mgu是什么: 有 2 个可能的答案 我认为第二个答案是最普遍的统一词,但是,第一个答案似乎是正确的。 我已经尝试了两种替换并且它们都产生了相同的结果,但是第二个答案是替换较少,这就是为什么我认为它是 mgu 任何帮助 ...
编辑:这个问题假设您启用了发生检查。 这与设置 Prolog 标志无关。 30 年前有一堆关于自动优化发生检查的论文,当它是安全的时(大约 90% 的谓词,在典型的代码库中)。 提出了不同的算法。 现代 Prolog 编译器(例如 SWI Prolog)是否会做类似的事情(当发生检查打开时)? ...