// A third and simpler example of recursion: summation
Y = f => (x => f(y => x(x)(y)))(x => f(y => x(x)(y)))
Q = f => n => n == 0 ? 0 : n + f(n - 1)
sum = Y(Q)
for (let i = 0; i <= 10; i++) {
console.log(i, sum(i));
}
console.log(100, sum(100))
Ly8gQSB0aGlyZCBhbmQgc2ltcGxlciBleGFtcGxlIG9mIHJlY3Vyc2lvbjogc3VtbWF0aW9uCgpZID0gZiA9PiAoeCA9PiBmKHkgPT4geCh4KSh5KSkpKHggPT4gZih5ID0+IHgoeCkoeSkpKQpRID0gZiA9PiBuID0+IG4gPT0gMCA/IDAgOiBuICsgZihuIC0gMSkKc3VtID0gWShRKQoKZm9yIChsZXQgaSA9IDA7IGkgPD0gMTA7IGkrKykgewoJY29uc29sZS5sb2coaSwgc3VtKGkpKTsKfQoKY29uc29sZS5sb2coMTAwLCBzdW0oMTAwKSk=