Anonymous user
Y combinator: Difference between revisions
→{{header|C++}}
Line 1,935:
constexpr auto Y=_Y<F>{};
int main(){
constexpr auto almost_fac = [](auto f){
return [f](auto n,auto acc){
return (n == 0) ? acc : f(n-1,n*acc);
};
};
constexpr auto almost_fib = []
return [f] (auto n) {
return n < 2? n: f (n - 1) + f (n - 2);
};
};
constexpr auto fac = Y<long(long,long)>(almost_fac);
constexpr auto fib = Y<long(long)>(almost_fib);
constexpr auto fac_10 = fac(10,1);
printf("%ld\n",fib(10));▼
printf("%ld\n",fac_10);
}</lang>
{{out}}
|