Suppose you wanted to write a factorial function. Usually you write it something like
function fact(n) = if n=0 then 1 else n * fact(n-1)
But this uses explicit recursion. If you want to use Y-combinator instead, you can first abstract away from the fact somehow like
function factMaker(myFact) = lamba n. if n=0 then 1 else n * myFact(n-1)
(myFact), , "" , . "Y-ready", , Y-combinator.
Y-combinator factMaker -, .
newFact = Y(factMaker)
? . : , "" Y-combinator.
- . memoization . , , . , , -
loggingFact = LoggingY(factMaker)
LoggingY Y combinator, . , factMaker!
, Y-combinator , , Y ( Y).