1

有一种简单的语言叫做 lambda calculus,它是 scheme 的一个子集。以下只有 4 个表达式。

exp : n (1 2 3)
 varref (variable reference)
 (lambda (x) body) (this is a procedure)
 (procedure argument) (this is a application which applies argument as real parameter to the procedure)

我正在用方案为这种语言编写解释器。Scheme 将 lambda 表达式更改为 scheme 过程,我想用一个列表来代替它。谁能给我建议?

4

2 回答 2

3

在尝试实现 lambda 演算解释器之前,您应该了解 lambda 演算。我认为您的第一步是写下 lambda 演算术语的示例,以及它们的评估结果。如果这很困难,请告诉我;互联网上有大量资源可以帮助您理解 lambda 演算的术语以及它们的含义。

这是一个看起来合理的:

http://www.cs.bham.ac.uk/~udr/popl/handout1.pdf

随着

http://www.cs.bham.ac.uk/~udr/popl/handout2.pdf

于 2012-09-19T03:15:38.540 回答
0

您可以发布一些演示该问题的特定代码吗?也许我在这里完全误解了,但我认为您应该为您的语言提供某种阅读器。当您启动它并读取 lambda 关键字时,它应该调用您的“实现”。

看看这篇很棒的帖子: 鸡肉里的口齿不清

于 2012-09-19T22:50:21.653 回答