algorithm - 什么是自然数和有效的简单类型 lambda 演算项之间的映射?

标签 algorithm search functional-programming enumeration lambda-calculus

是否有任何有效的算法可以在简单类型的 lambda 演算的类型良好的闭项与自然数之间进行映射?例如,使用 bruijn 索引(可能顺序不正确):

0 → (λ 0)
1 → (λ (λ (0 1)))
2 → (λ (λ (1 0)))
3 → (λ 0 (λ 0))
4 → (λ (λ 0) 0)
5 → (λ (λ 1) 0)
6 → ... so on

相关问题:是否有一种算法可以在自然数和简单类型 lambda 演算的规范化项之间进行映射?此外,同样的问题也适用于无类型 lambda 演算。

最佳答案

Binary Lambda Calculus 为无类型 lambda 演算中的任何封闭项定义了二进制编码,并且还提出了自然数和二进制字符串之间的双射,但前者不是满射的。 还是论文http://arxiv.org/abs/1401.0379 “二进制 Lambda 微积分中的计数项” 可能会产生有效的排名/非排名映射。

关于algorithm - 什么是自然数和有效的简单类型 lambda 演算项之间的映射?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28685232/

相关文章:

string - 在Elasticsearch上使用query_string在字符串字段中搜索数字

java - Final 或 Effectively final 混淆

Scala:排序子集最合适的数据结构是什么?

algorithm - 计算2个日期之间天数的实现

java - 调整圆形数组的大小,在双端队列实现中

algorithm - 使用时差 (TDOA) 对信号进行三边测量

Ruby 与计算机科学相关的 yield 特性

algorithm - 起始位置和一组所需节点之间的最小生成树

algorithm - 什么是提供自动完成的有效搜索算法?

elasticsearch - ElasticSearch-为模糊术语创建异常(exception)