In lambda calculus, a recursive function $f$ is obtained by
$$ f = Y g $$
where $Y$ is the Y combinator and $g$ is the generator of $f$ i.e. $f$ is a fixed point of $g$ i.e. $f == g f$.
In The Scheme Programming Language, I saw an example implementing a recursive function $f$ that sums the integers in a list:
(let ([sum (lambda (f ls) (if (null? ls) 0 (+ (car ls) (f f (cdr ls)))))]) (sum sum '(1 2 3 4 5))) => 15
What is the mathematical derivation that drives to create the lambda abstraction
lambda (f ls) (if (null? ls) 0 (+ (car ls) (f f (cdr ls))))
? It looks like a generator of $f$, but not entirely.