Вот способ сохранить анонимность, в основном:
(((fn [!] (fn [n] (if (= 1 n) 1 (* n ((! !) (dec n))))))
(fn [!] (fn [n] (if (= 1 n) 1 (* n ((! !) (dec n)))))))
5)
Это не совсем Y-комбинатор, но он содержит тот же бит самостоятельного применения, который позволяет Y делать свое дело.Имея копию всей функции в области видимости !
, когда вам это нужно, вы всегда можете сделать еще одну копию.