LINQ:为什么称它为"理解语法"

lan*_*nce 20 c# linq syntax naming

为什么以下LINQ语法(有时称为"查询"语法)称为"理解"语法?什么被理解(肯定是错的)?或者,什么是全面的代表(也许我现在正走在正确的轨道上)?

Dan*_*olo 18

它来自与语言无关的术语列表理解,许多语言都遵循这一术语.历史显然是:

SETL编程语言(后来的20世纪60年代)有一个集合形成构造,计算机代数系统AXIOM(1973)有一个类似的构造来处理流,但是对于这样的构造的第一个使用术语"理解"是在Rod Burstall和John Darlington对1977年函数式编程语言NPL的描述.

FOLDOC也大多回应了这个:

根据Rishiyur Nikhil的一篇报道(1992年8月),这个术语本身似乎是由Phil Wadler在大约1983-5创造的,尽管编程结构本身可以追溯得更远(很可能是Jack Schwartz和SETL语言).

术语"列表理解"出现在下面的参考文献中.

最早提到符号的是Rod Burstall和John Darlington对他们语言的描述,NPL.

["OL手册"Philip Wadler,Quentin Miller和Martin Raskovsky,大概1983-1985].

["如何用成功名单取代失败"FPCA 1985年9月,南希,法国,第113-146页].

  • @lance - 因为它必须被称为某种东西; p有时它就像那样简单...... (3认同)

Mat*_*ias 5

我怀疑这与理解的第二个含义有关:

接纳或拥抱; 包括; 包括

此语法与定义应包含在集合中的内容有关.