WEB开发网
开发学院软件开发C语言 从C#到Python:3 函数及函数编程 阅读

从C#到Python:3 函数及函数编程

 2010-09-30 22:42:07 来源:WEB开发网   
核心提示: 3.29更新:根据JeffreyZhao提示,重新整理C#中匿名函数的内容(本部分主要参考MSDN,从C#到Python:3 函数及函数编程(6),见http://msdn.microsoft.com/zh-cn/library/bb882516.aspx):在C#中也有匿名函数功能,在 C#

3.29更新:根据JeffreyZhao提示,重新整理C#中匿名函数的内容(本部分主要参考MSDN,见http://msdn.microsoft.com/zh-cn/library/bb882516.aspx):

在C#中也有匿名函数功能。在 C# 1.0 中,通过使用在代码中其他位置定义的方法显式初始化委托来创建委托的实例。C# 2.0引入了匿名方法的概念,作为一种编写可在委托调用中执行的未命名内联语句块的方式。C# 3.0 引入了 Lambda表达式,这种表达式与匿名方法的概念类似,但更具表现力并且更简练。这两个功能统称为“匿名函数”。通常,针对 .NET 3.5 及更高版本的应用程序应使用 Lambda 表达式。

Lambda 表达式可以包含表达式和语句,并且可用于创建委托或表达式目录树类型。所有 Lambda 表达式都使用 Lambda 运算符 =>, 运算符的左边是输入参数(如果有),右边包含表达式或语句块。可以将此表达式分配给委托类型,如下所示:

1 delegate int del(int i);
2 del myDelegate = x => x * x;
3  int j = myDelegate(5); //j = 25

3.4.2  高阶函数

高阶函数(High Order)是函数式编程的基础,常用的高阶函数有:

(1) 映射,也就是将算法施于容器中的每个元素,将返回值合并为一个新的容器。

(2) 过滤,将算法施于容器中的每个元素,将返回值为真的元素合并为一个新的容器。

(3) 合并,将算法(可能携带一个初值)依次施于容器中的每个元素,将返回值作为下一步计算的参数之一,与下一个元素再计算,直至最终获得一个总的结果。

Python通过map、filter、reduce三个内置函数来实现上述三类高阶函数功能。本文不对这三个函数的用法进行详细介绍,仅给出它们使用的示例代码(引自《Python的map、filter、reduce函数》),请细细体会:

上一页  1 2 3 4 5 6 7  下一页

Tags:Python 函数 函数

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接