Вопрос

Чтобы узнать, для чего предназначен и используется комбинатор с фиксированной точкой, я написал свой собственный. Но вместо того, чтобы писать это со строгими анонимными функциями, как Пример Википедии, Я только что использовал определение:

(define combine (lambda (functional)
                  (functional (lambda args (apply (combine functional) args))))

Я проверил это с функционалами для факториала и Фибоначчи, и, кажется, работает. Соответствует ли это формальным определением комбинатора с фиксированной точкой?

Это было полезно?

Решение

Ответ нет, потому что в соответствии с Блог упоминается в предыдущем ответе, это даже не соответствует определению комбинатор, поскольку «комбинация» является свободной переменной.

Другие советы

РЕДАКТИРОВАТЬ: В то время как Chessweb или кто -либо еще подтверждает его ответ, временно считайте его ответ правильным, и этот ошибка.


Кажется, ответ - да. Очевидно, что появляется точно тот же комбинатор здесь, на полпути вниз по странице:

(define Y
    (lambda (f)
      (f (lambda (x) ((Y f) x)))))
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top