如何在 ANF 中编码身份函数?

How to encode the identity function in ANF?

我正在尝试理解 ANF(行政范式),但我无法理解 lambda 术语的翻译。考虑这个 lambda 项:λx.x。你如何在 ANF 中对其进行编码? x是一个变量,但是一个lambda body在ANF中必须是一个let绑定或者一个函数应用,根据ANF语法:

EXP ::= VAL VAL
      | let VAR = EXP in EXP

VAL ::= λ VAR . EXP
      | VAR

A-normal form 上的维基百科页面未能提供完整的语法。 这是更正后的版本:

EXP ::= VAL
      | VAL VAL
      | let VAR = EXP in EXP

VAL ::= λ VAR . EXP
      | VAR

这意味着恒等函数是A归一化函数的一个不动点,即它是一样的λx. x。有关更多信息,请参见 here.