重命名高阶列表操作的基本原理

时间:2010-09-26 16:37:11

标签: c# linq functional-programming higher-order-functions

在C#中重命名高阶列表操作背后的理由是什么? (示例:map - > Selectfilter - > Wherefold - > Aggregate

4 个答案:

答案 0 :(得分:5)

LINQ尝试对熟悉SQL的人大致熟悉,其中投影选择等等。当然,您可以编写自己的扩展方法,其名称也适合。

答案 1 :(得分:5)

关于元问题......

功能编程社区和主流命令式编程社区已经相互隔离了很长时间。结果,存在基本的词汇差异;例如,像“多态”这样的常用术语对于每个组来说意味着完全不同的东西(参数多态性,对于FP-ers来说是a.k.a.“泛型”或“模板”;而对于其余的则是亚型多态性。)

询问名称背后的基本原理(如果有的话)通常会产生一个简单的答案 - 根据“本地文化”命名。在C#中,LINQ是一种类似SQL的查询语言,因此它看起来很像SQL。

但是问这个问题大致类似于前往西班牙,并询问每个人称他的房子为“mi casa”的理由是什么。 (“你是什么意思我为什么称之为?这就是所谓的!你的意思是你称它为不同的东西?”)

答案 2 :(得分:2)

不是答案,但值得一提:

有关LINQ(如C#/ Enumerable)和F#Seq函数(主要遵循更传统的函数名称)之间的'解码器环'转换,请参阅http://blogs.msdn.com/b/jaredpar/archive/2008/12/02/mapping-linq-to-f.aspx

答案 3 :(得分:1)

嗯,IMO,“fold”是“Aggregate”的一个非常可怕的名字。吓坏了数学人。 :)尽管C#名称更符合SQL / LINQ。