2011-11-07 40 views
3

我正在为language写一个简单的解析器/解释器。这些指令不断提到“推迟替代”,因为在'延期替代'是什么意思?

扩展描述,使得功能 可以接受的零个或多个参数,而不是只是一个列表中fun语言功能。所有 参数的函数必须使用相同的延迟 替换进行评估。

我不需要任何帮助来实现这一点,我只是对'延迟替代'的含义感到困惑。有什么想法吗?

+0

我会仔细看看[您似乎正在使用的教科书]的第5章和第6.4节(http://www.cs.brown.edu/~sk/Publications/Books/ProgLangs/PDF/plai -2006-01-15.pdf)。 – hammar

+0

我提供的链接只是我快速搜索的内容...这不是我的任务,但谢谢! – chris

回答

4

延期替代是指尽可能以最新步骤替代变量值的做法。通过这样做,你推迟了它的替代!

这里有个例子可以帮助你明白它的意思: 假设你有以下功能: F(X)= 500 + 300 + 2X + 45X

比方说,X = 1 如果要推迟x的替代,你可能会做:

  1. F(X)= 800 + 2X + 45X
  2. F(X)= 800 + 47X
  3. F(1)= 800 + 47(1)

请注意,在简化所有不是该函数中的变量之后,我们已经用最后一步替代了x的值。