Jump to content

Y combinator: Difference between revisions

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 = [] (auto f) {
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",facconstexpr auto fib_10 = fib(10,1));
printf("%ld\n",fib(10)fib_10);
printf("%ld\n",fac_10);
}</lang>
{{out}}
Cookies help us deliver our services. By using our services, you agree to our use of cookies.