JavaScript Y-Combinator
in ES6
by wuct
JavaScript
const fix = le => {
return (f => f(f))(
f => le(x => f(f)(x))
)
};
const genFib = f => n => {
if (n === 0) return 0
if (n === 1) return 1
return f(n - 1) + f(n - 2)
}
const fib = fix(genFib)
const result = fib(10)
console.log('result', result)