cost 478 ms
SWI-Prolog 中是否有 member/2 的非统一替代方案? - Is there a non-unifying alternative to member/2 in SWI-Prolog?

在 prolog 中, A = B和A == B之间的区别在于=试图将A与B统一,而==只有在A和B已经统一的情况下才会成功。 member/2似乎确实执行了统一。 示例会话: 我一直在寻找,但找不到member/2的非统一替代方案,但没有找到任何东西。 有内置的东西还是我必须发明自己的东 ...

Prolog中的统一算法可以无限递归吗? - Can the unification algorithm in Prolog recurse infinitely?

我正在使用 swi-prolog 在 Prolog 课程的背景下为学生制作一些示例。 关于统一,我想提请他们注意统一过程中无限递归的危险。 但是,成熟的 Prolog 实现(如 swi-prolog)足够智能,可以在大多数情况下避免统一过程的无限递归。 在所有情况下都是如此,还是可以构建更复杂的例 ...

clojure inspired 换能器可以用 HM 类型系统打字吗? - Can clojure inspired transducers be typed with the HM type system?

我在 Javascript 中有一个纯功能传感器实现,它支持环路融合和短路。 请注意,虽然我使用的是 JS,但这并不是理解问题的必要条件。 只有类型很重要。 // ((a -> r) -> r) -> Cont r a const Cont = k => ({run: k ...

如何在不依赖类型推断的情况下排除无意义的类型? - How to exclude nonsensical types without relying on type inference?

我一直在为 Javascript 开发类型验证器,以便为最初为动态类型设计的语言启用渐进类型。 类型验证意味着只对具有显式类型注释的术语进行类型检查,但没有推理。 不幸的是,这种方法是不合理的,因为它允许将程序键入如下: 这种类型检查,因为类型推断被绕过。 但是, r没有任何价值,因为 funct ...

统一 dataframe 列,如 Prolog 中的列以删除重复项 - Unify dataframe columns like in Prolog to remove duplicates

我正在学习numpy和pandas ,所以如果我没有使用正确的术语或者我问了一些愚蠢的问题,请原谅我。 我花了很长时间在网上搜索我的问题的答案,但没有运气...... 我有几个.CSV 文件,其中包含同一域中的数据。 每个文件都有一个列,该列用作每一行的主键。 每个文件中主键列的名称可能不同。 每个 ...

如何为刚性类型变量 escaping 和 scope 重现 GHC 的类型错误? - How to reproduce GHC's type error for a rigid type variable escaping its scope?

这是刚性类型变量 escaping 和 scope 的典型示例: 我试图通过手动进行统一/包含来重现错误: 据我所知,刚性类型变量(skolem 常量)只能包含在自身之下或与不允许前者逃脱其 scope 的元(统一)类型变量统一,即元电视不能在scope 刚性电视最初是 skolemized。 因 ...

Datalog 的单面统一是否足够? - Is single sided unification sufficient for Datalog?

使用不使用 function 符号而仅使用常量和变量的 Prolog 子集可以轻松识别数据日志。 但是不使用否定的纯 Datalog 有一个进一步的约束(*): 每一个事实都是有根据的。 规则头部的每个变量,也出现在规则的主体中。 我们能否得出结论,单面统一足以回答分层 Datalog 查询? 或 ...

单面统一可以改善错误处理吗? - Can single sided unification improve error handling?

受这个问题的启发,我正在努力纠正错误处理反向/2。 所以我尝试了这个实现: 一切正常,直到我尝试使用 reverse/2 作为生成器: 单面统一可以改变这种情况吗,一些基于单面统一的典型解决方案,以便生成器reverse(X,Y)仍然可以工作? SWI-Prolog 8.3.19 中提供了单面统 ...

在统一过程中,高级类型的实例化和包含如何交互? - How does instantiation of higher-rank types and subsumption interact during unification?

如果量词出现在逆变 position: f:: (forall a. [a] -> b) -> Bool 关于这种类型的统一,类型变量a比b更严格,因为适用以下实例化规则: a可以使用灵活的类型变量进行实例化,前提是这不允许a转义其 scope 或使用另一个刚性类型变量但不是非抽象类 ...

广义 HM 与高阶统一 - Generalized HM vs. Higher-Order Unification

AFAIK,Hindley-Milner 类型系统中使用的统一可以通过在构造函数 position 中允许类型 var 并在这种情况下放宽 arity 约束来推广以统一更高种类的类型: 我想还涉及种类,但我不知道如何。 以我的一点经验,我会说这对于高级类型的声音统一来说已经足够了。 与高阶统一的主 ...

最通用的统一器(Prolog) - Most General Unifier (Prolog)

有一个关于 prolog 中的 mgu(最通用的统一器)的快速问题。 我们被问到mgu是什么: 有 2 个可能的答案 我认为第二个答案是最普遍的统一词,但是,第一个答案似乎是正确的。 我已经尝试了两种替换并且它们都产生了相同的结果,但是第二个答案是替换较少,这就是为什么我认为它是 mgu 任何帮助 ...

现代 Prolog 编译器是否会在安全时自动优化发生检查? - Do modern Prolog compilers optimize away the occurs check automatically, when it's safe?

编辑:这个问题假设您启用了发生检查。 这与设置 Prolog 标志无关。 30 年前有一堆关于自动优化发生检查的论文,当它是安全的时(大约 90% 的谓词,在典型的代码库中)。 提出了不同的算法。 现代 Prolog 编译器(例如 SWI Prolog)是否会做类似的事情(当发生检查打开时)? ...


 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM