代码之家  ›  专栏  ›  技术社区  ›  ecdhe

Y组合的推导

  •  0
  • ecdhe  · 技术社区  · 6 年前

    在经历这一切的时候 article 关于Y-Combinator(我强烈推荐),我偶然发现了这种转换:

    (define Y 
        (lambda (f)
          ((lambda (x) (x x))
           (lambda (x) (f (x x))))))
    
    Note that we can apply the inner lambda expression to its argument to get an equivalent version of Y:
    
      (define Y 
        (lambda (f)
          ((lambda (x) (f (x x)))
           (lambda (x) (f (x x))))))
    

    有人能给我解释一下我们是怎么得到第二版的Y的吗?我们采取了哪些步骤才能到达那里?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Brady Dean    6 年前

    你在申请 (lambda (x) (x x))(lambda (x) (f (x x)))
    应用程序获取 (lambda (x) (f (x x))(lambda (x) (f (x x))
    注意,左lambda创建其参数的2个副本,即右lambda。