RosettaCodeData/Task/Y-combinator/C++/y-combinator-3.cpp

7 lines
164 B
C++
Raw Permalink Normal View History

2023-07-01 11:58:00 -04:00
template <typename A, typename B>
std::function<B(A)> Y (std::function<std::function<B(A)>(std::function<B(A)>)> f) {
return [f](A x) {
return f(Y(f))(x);
};
}