求一个 Lambda 大仙
  • 板块学术版
  • 楼主ccviolett
  • 当前回复7
  • 已保存回复7
  • 发布时间2020/7/29 16:40
  • 上次更新2023/11/6 21:51:22
查看原帖
求一个 Lambda 大仙
20522
ccviolett楼主2020/7/29 16:40

编译错误啊 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;
}
2020/7/29 16:40
加载中...