Вывод Y-Combinator - PullRequest
       83

Вывод Y-Combinator

0 голосов
/ 28 ноября 2018

Просматривая эту статью о Y-комбинаторе (которую я настоятельно рекомендую), я наткнулся на это преобразование:

(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 Ответ

0 голосов
/ 28 ноября 2018

Вы применяете (lambda (x) (x x))(lambda (x) (f (x x)))
Запустите приложение, чтобы получить (lambda (x) (f (x x))(lambda (x) (f (x x))
Обратите внимание, что левая лямбда создает 2 копии своего аргумента, то есть правой лямбды.

...