为什么following LINQ syntax(有时称为“查询”语法)称为“理解”语法?什么被理解(肯定是错的)?或者,全面代表什么(也许我现在正走在正确的轨道上)?
答案 0 :(得分:18)
它源自许多语言遵循的与语言无关的术语List Comprehension。历史显然是:
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月,Nancy,法国,第113-146页]。
答案 1 :(得分:5)
答案 2 :(得分:1)
我认为这篇论文可以解释http://dl.acm.org/citation.cfm?id=181564 即他们争论并定义(我认为)理解语法是什么。它发布于1994年,可能会影响LINQ的设计概念。
答案 3 :(得分:0)
从术语"理解"和"全面的"经常用英语表示"整体"和/#34;完整性",理解语法的一个含义可以是一个sintax,它允许构建能够生成值集合的表达式,这些值包括遵守规则的所有值"(理解)用这些表达方式表达。
另一个含义可能更多地与从某个指定集开始生成值(列表)的子集,因此属于起始集的值的子集,并且它包含"在原来的集合。因此,理解sintax可能是编程语言的结构的sintax,它可以生成包含在指定原始集中的子集值。
答案 4 :(得分:0)
我对作为.NET开发人员的术语linq理解语法的理解是,它允许您以熟悉的样式查询语言编写linq。随着人们对linq的理解的改进,他们可能会转向.NET中已知的扩展方法语法,这也是.NET编译器在编译时解释linq的方式。