如何建模二元lambda演算的输出?

时间:2016-04-08 00:04:28

标签: haskell programming-languages interpreter lambda-calculus

我正在为John Tromp's binary lambda calculus

写一个翻译

我已编写代码来执行以下操作:

  1. 将二进制输入解析为表示常规无类型lambda演算
  2. 的某些数据结构
  3. Beta-reduce this term
  4. 那会怎么样?

    • "输出如何"何解释?
    • 是输出
      • a)生成的术语通过相同的编码转换回二进制文件,
      • 或b)由错误终止的布尔列表编码的比特流?
    • (如果输出没有形成这样的列表,会发生什么?)

    或者我误解了BLC的工作原理?

1 个答案:

答案 0 :(得分:1)

我建议您使用http://www.ioccc.org/2012/tromp/hint.html作为主要参考。维基百科页面可能很好,但他在BLC上的原始笔记非常好。

关于输入和输出的主题,他有这样的说法:

  

更具体地说,它定义了一个通用机器,它从输入的比特流中解析lambda演算术语的二进制编码,将其应用于输入的其余部分(转换为一个懒惰的布尔列表,其中有一个lambda演算中的标准表示法),并将评估结果转换回要输出的位流。