频 道 直 达 - 新闻 - 培训 - 软件 - 教程 - 前沿 - 组网 - 系统应用 - 安全 - 编程 - 存储 - 操作系统 - 数据库 - 服务器 - 专题 - 产品 - 案例库 - 读书 - 博客 - BBS
51CTO.COM_中国最大的网络技术网站
找资料:

22.4.1.1 函数是第一型

作者: 月影 出处:清华大学出版社  2008-06-19 11:22    砖    好    评论   进入论坛
阅读提示:《JavaScript王者归来》第二十二章介绍的是闭包与函数式编程,本小节为大家介绍的是函数是第一型。

22.4.1.1 函数是第一型

这句话本身该如何理解?什么才是真正的“第一型”?我们看下面的数学概念:

二元方程式 F(x, y) = 0,x, y 是变量, 把它写成 y = f(x), x是参数,y是返回值,f是由x到y的映射关系,被称为函数。如果又有,G(x, y, z) = 0,或者记为 z = g(x, y),g是x、y到z 的映射关系,也是函数。如果g的参数x, y又满足前面的关系y = f(x), 那么得到z = g(x, y) = g(x, f(x)),这里有两重含义,一是f(x)是x 上的函数,又是函数g的参数,二是g是一个比f更高阶的函数。

这样我们就用z = g(x, f(x)) 来表示方程F(x, y) = 0和G(x, y, z) = 0的关联解,它是一个迭代的函数。我们也可以用另一种形式来表示g,记z = g(x, y, f),这样我们将函数g一般化为一个高阶函数。同前面相比,后面这种表示方式的好处是,它是一种更加泛化的模型,例如T(x,y) = 0 和G(x,y,z) = 0 的关联解,我们也可以用同样的形式来表示(只要令f=t)。在这种支持把问题的解转换成高阶函数迭代的语言体系中,函数就被称为“第一型”。

JavaScript中的函数显然是“第一型”。下面就是一个典型的例子:

Array.prototype.each = function(closure)
{
return this.length ? [closure(this.slice(0, 1))].
concat(this.slice(1).each(closure)) : [];
}

这真是段神奇的魔法代码,它充分发挥了函数式的魅力,在整个代码中只有函数(function)和符号(Symbol)。它形式简洁并且威力无穷。

[1,2,3,4].each(function(x){return x * 2})得到[2,4,6,8],而[1,2,3,4].each(function(x){return x-1})得到[0,1,2,3]。

函数式和面向对象的本质都是“道法自然”。如果说,面向对象是一种真实世界的模拟的话,那么函数式就是数学世界的模拟,从某种意义上说,它的抽象程度比面向对象更高,因为数学系统本来就具有自然界所无法比拟的抽象性。

【责任编辑:夏书 TEL:(010)68476606】

回书目   上一节   下一节
专题
Java实用开发全集
Java类的基础教程专题
Java发展动态专题
Java编程开发手册
Java基础教程
我也说两句

匿名发表

(如果看不清请点击图片进行更换)


中 国 最 大 的 网 络 技 术 网 站 ·
技 术 成 就 梦 想
订阅技术快讯
电子杂志下载
名称:SQL Server数据库管理精品黄皮书
简介:书中文章经过精挑细选,便于用户能根据自己的实际工作和学习,快速在本书寻找到相关资料。内容涵盖了SQL Server的安装与升级、语句查询、数据备份和恢复、自动化任务、数据同步、数据字典、安全和预防、性能和优化、集群等各方面应用信息,以及DBA管理人员在数据库管理工作中
名称:2007路由技术大全
简介:《2007路由技术大全》由51CTO.com网站特别策划制作,该书包括路由器技术、路由器产品、路由器配置、安全设置、路由器故障处理、路由器密码恢复,以及广大网友在实践使用中的心得经验和技巧文章,内容注重实用性,适用于初学者入门,也适合多年从业者提高,是一本实践和理论完
名称:网络安全精品应用黄皮书
简介:《2007精品网络安全黄皮书》包括了9个大类24个小类, 800余篇文章,内容包含了熊猫烧香病毒、DDOS攻击、ARP病等热点问题的介绍及解决方案。从病毒查杀、防范、系统、数据等各方面的安全设置到黑客技术的了解、防范,涉及到了安全应用的全部领域, 由浅至深内容全面。
技术人求职简历完备手册
技术人求职简历完备手册
开源虚拟化技术Xen
开源虚拟化技术Xen
Windows Server 2008专题
Windows Server 2008专题
· Windows Server 2008专..
· 隐私保护技术探讨
· 绿色IT人健康生存手册
· 网络工程师职业规划与..
· 杀毒软件评测专题
· 访问控制列表(ACL)介绍
· Vista SP1对决XP SP3
· 华为员工自杀频频拷问..
· 2008中国互联网大会
· 微软出价446亿美元收购..
· 勇闯IT培训黑色围城
· CISSP认证成长之路
· 解析35岁技术人的价值..
· LAMP技术精解
· AMD Phenom三核处理器..
· 充电计划之热门IT认证..
ARP攻击防范与解决方案
ARP攻击防范与解决方案
SQL Server 2008/2005全解
SQL Server 2008/2005全解
SOA 面向服务架构
SOA 面向服务架构
· SOA 面向服务架构
· SQL Server 2008/2005..
· Apache技术专题
· 三层交换技术专题
· SQL Server入门到精通
· Apache技术专题
· 国际文档格式标准开战
· 路由器设置与口令恢复
· PHP开发应用手册
· SOA 面向服务架构
· 企业数据恢复指南
· 了解统一威胁管理(UTM)..
· 专题:AIX操作系统管理..
· 访问控制列表(ACL)介绍
· 反垃圾邮件技术应用
· ASP.NET 2.0基础开发指..
ARP攻击防范与解决方案
ARP攻击防范与解决方案
SQL Server 2008/2005全解
SQL Server 2008/2005全解
SQL Server入门到精通
SQL Server入门到精通
· SQL Server入门到精通
· SQL Server 2008/2005..
· SOA 面向服务架构
· Apache技术专题
· 三层交换技术专题
· Apache技术专题
· 企业数据恢复指南
· 路由器设置与口令恢复
· SOA 面向服务架构
· 了解统一威胁管理(UTM)..
· 反垃圾邮件技术应用
· 访问控制列表(ACL)介绍
· PHP开发应用手册
· 专题:AIX操作系统管理..
· 交换机故障解决指南
· 三层交换技术专题