LINQ表达式树是否完整?

Tra*_*ony 10 .net linq dynamic-language-runtime expression-trees turing-complete

因为他们在.Net 3.5.我知道他们在4.0,因为这是DLR的工作方式,但我对我们现在拥有的版本感兴趣.

Jay*_*uzi 21

在C#3.0规范的早期草案中,有关表达树的部分边缘有一条评论说:

我有一个关于图灵完整性的真正奇妙的证据,这个边缘太窄而无法包含.

可悲的是,没有人能够找出谁写了它或开发证据.

  • 希望它不会[358年](http://en.wikipedia.org/wiki/Fermat%27s_Last_Theorem).*8' ) (2认同)

Tim*_*son 2

LINQ 表达式树可以表示可以放入普通 C# 表达式中的任何内容。因此,它们不能用来直接表示while循环、for循环等。

但是,理论上可以使用 lambda 表达式和递归来执行您可能需要的任何迭代。Enumerable实际上,将方法放入树中可能更容易。