3 行代码内能完成什么牛叉的事情呢?


#1

来个例子:

c#:

Func<Func<Func<int, int>, Func<int, int>>, Func<int, int>> Y = f => ((Recursive)(g => (f(x => g(g)(x)))))((Recursive)(g => f(x => g(g)(x))));
var fac = Y(f => x => x < 2 ? 1 : x * f(x - 1));
var fib = Y(f => x => x < 2 ? x : f(x - 1) + f(x - 2));

coffeescript:
Y = (f) -> g = f( (t…) -> g(t…) )
fac = Y( (f) -> (n) -> if n > 1 then n * f(n-1) else 1 )
fib = Y( (f) -> (n) -> if n > 1 then f(n-1) + f(n-2) else n )

:grin:

规则大概有:

  1. 不可引用第三方库,只能使用各个语言的标准库
  2. 不能恶意压缩代码
  3. 函数声明语句(如 def func():)不算在 3 行之内

#2

不明觉厉 —— 本评论来自全球应用性能第一品牌领导者 OneAPM 工程师


#3

我醉关心能搞定妹纸不?


#4

我也醉关心能搞定妹纸不?


#5

@Frances :joy::joy::joy::joy::joy::joy:


#6

@yanijia :joy::joy::joy::joy::joy::joy::joy::joy: