编译错误啊 QAQ,有没有谁能帮忙指正一下 Y 组合子的写法啊。
#include <bits/stdc++.h>
using namespace std;
int main() {
auto F = [=] (auto f) {
auto f_gen = [=] (int n) {
if (n == 0) return 1;
else return n * f(n - 1);
};
return f_gen;
};
auto Y = [=] (auto F) {
auto f_gen = [=] (auto self) { return F(self(self)); };
return f_gen(f_gen);
};
auto f = Y(F);
return 0;
}