Описание тега y-combinator

Комбинатор Y - это функция высшего порядка, которая позволяет функции, не знающей собственного имени, вызывать саму себя. Это фундаментальная основа рекурсии.

Комбинатор Y - это функция высшего порядка, которая позволяет функции, не знающей собственного имени, вызывать саму себя. Это фундаментальная основа рекурсии.

В синтаксисе схемы:

  (define Y
    (lambda (f)
      (f (lambda (x) ((Y f) x)))))

Чтобы рекурсивно реализовать Фибоначчи с помощью Y:

(define fibonacci 
  (Y
    (lambda (f)
      (lambda (n)
        (if (= n 0)
            1
            (* n (f (- n 1))))))) ))

Хорошая статья по этой теме: http://mvanier.livejournal.com/2897.html