- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在“类型和编程语言”的 6.1.2 节中,他们讨论了用于为 lambda 表达式中的自由变量编号的命名上下文。使用他们提供的示例方案,λx.xb
和 λx.xx
将他们的 de Bruijn 表示为 λ.00
当它们显然是不同的术语时。这是如何工作的?
最佳答案
正如你提到的,这本书使用了一个映射 n
的命名上下文。来自 0
的数字的自由变量至 n-1
.但是,如果您仔细查看本书中的示例,您会注意到它并没有直接使用这些数字来表示变量。例如它代表λw. y w
如 λ. 4 0
即使 y
的映射是 3,不是 4。
这里发生的事情是他将变量的嵌套深度添加到数字中。即如果一个自由变量 v
嵌套在 d
lambdas,它得到索引 Γ(v)+d
,不仅仅是 Γ(v)
.
所以在你的例子中使用上下文 Γ {b -> 0}
λx.xb
将表示为 λ. 0 1
,不是 λ. 0 0
.因此没有歧义。
关于lambda-calculus - 如何使用命名上下文来查找自由变量的 de Bruijn 索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9450408/
我正在寻找一种迭代生成 de Bruijn 序列的方法,而不是使用递归。我的目标是逐个字符地生成它。 我找到了 some example code in Python用于生成 de Bruijn 序列
我不是该主题的专家,所以请在回答时考虑到这一点。 我正在阅读两篇论文 Succinct de Bruijn Graphs 和 Compacting de Bruijn graphs from sequ
我需要证明/反对是否在每个二进制 De-Bruijn 序列中都存在等量的 0 和 1。从我用 n=3 和 n=2 做的几个例子中,我看到序列中有相同数量的 0 和 1,但我真的不知道为什么……我不知道
我正在尝试计算 de Bruijn sequences对于具有多个不是二的幂的字符的字母表。 对于具有 2^k 个字符的字母表,计算 de Bruijn 序列很容易:有几个简单的规则,例如 "Pref
我很难说服编译器相信两个 De Bruijn 索引变量是相同的。我有以下深度嵌入的 DSL,De Bruijn 索引代码基于 Manuel Chakravarty 的 Converting a HOA
在“类型和编程语言”的 6.1.2 节中,他们讨论了用于为 lambda 表达式中的自由变量编号的命名上下文。使用他们提供的示例方案,λx.xb和 λx.xx将他们的 de Bruijn 表示为 λ.
我正在计算 cyclic de Bruijn sequences使用以下代码: import sys if len(sys.argv) > 1: n = int(sys.argv[1]) # g
我正在使用“De Bruijn”算法来发现大数(最多 64 位)的二进制位数。 例如: 1022在二进制中有10位。 130在二进制中有8位。 我发现使用基于 De Bruijn 的表查找让我能够以比
我正在尝试使用 Data.Reify 为简单的 AST 恢复共享(在 Type-Safe Observable Sharing in Haskell 意义上) : {-# LANGUAGE Deriv
我正在查看条目 Find the log base 2 of an N-bit integer in O(lg(N)) operations with multiply and lookup来自 Bi
我是一名优秀的程序员,十分优秀!