Хабр Курсы для всех
РЕКЛАМА
Большая витрина: от крупнейших школ до частных авторов. Сравнивайте по цене, длительности, формату и выбирайте самый подходящий курс!
Y = λf.(λx.f (x x)) (λx.f (x x))
(define Y (λ (f) ((λ (rec) (f (λ arg (apply (rec rec) arg)))) (λ (rec) (f (λ arg (apply (rec rec) arg)))))))
на порядок понятнее и красивееЯ с лиспом не знаком, и пока искал пару 3-й скобке в вашем втором выражении окончательно запутался. В статье же все предельно доступно, на простом и понятном многим языке.
var fact = Y(#(callee) {
#(num) { num > 1 ? num * callee(num - 1) : 1 }
});
var Y = # (h) {
# (# (f) {
f(f)
})(# (f) {
h(# (n) { # f(f)(n) })
})
};
var fact = Y(# (callee) {
#(num) { num > 1 ? num * callee(num - 1) : 1 }
});
Получение Y-комбинатора в 7 простых шагов