在您看来,您遇到的最令人惊讶,奇怪,奇怪或真正的"WTF"语言功能是什么?
每个答案只能有一个功能.
注意:这个问题的重点更多来自好奇心.我想知道是否有可能将Haskell实现音译成功能性的C#等价物.
所以我一直在学习Haskell非常好,在解决Project Euler问题的同时,我遇到了这个美丽的Haskell Fibonacci实现:
fibs :: [Integer]
fibs = 1:1:zipWith (+) fibs (tail fibs)
Run Code Online (Sandbox Code Playgroud)
当然我很想写这样的C#版本,所以:
如果我这样做:
IEnumerable<int> fibs =
Enumerable.Zip(Enumerable.Concat(new int[] { 1, 1 }, fibs),
//^^error
fibs.Skip(1), (f, s) => f + s);
Run Code Online (Sandbox Code Playgroud)
错误表示使用未分配的局部变量fibs.
所以我稍微有点必要,而这个编译......
public static IEnumerable<int> Get()
{
return Enumerable.Zip(Enumerable.Concat(new int[] { 1, 1 }, Get()),
Get().Skip(1), (f, s) => f + s);
}
Run Code Online (Sandbox Code Playgroud)
它打破了堆栈溢出异常!所以我来到这里..
问题: