技术趋势Functional Pogramming函数编程风云再起费.pdf
《技术趋势Functional Pogramming函数编程风云再起费.pdf》由会员分享,可在线阅读,更多相关《技术趋势Functional Pogramming函数编程风云再起费.pdf(17页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 DD 凤凰平台 技术趋势:技术趋势:FunctionalPogrammingFunctionalPogramming 函数编函数编程风云再起程风云再起 甫于日前落幕的 SoftwareDevelopment2.0 研讨会,来宾之一的 AndreiAlexandrescu 被问到未来编程语言的趋势时,他认为函数编程可能会再度兴起。我认同他的看法,我过去发表的 JavaFX 文章中,碰巧也有提到这一点。目前两大开发平台都开始出现函数编程思维的踪迹。Java DD 凤凰平台 平台的 JavaFX 语言,具备所有重要函数编程的特色,所以应该归类为函数语言;.NET 平台的 C#3.0 也存在相当多函
2、数编程的影子。微软的 LINQ 本来就源自于函数语言,更不用提微软官方的 F#语言,F#沿用相当多 ML 语言的语法,更是彻底的函数语言。根据 Tiobe 对于 2007 年 12 月语言需求所做的统计,面向对象语言占 54.4%,程序语言占 41.Array%,函数语言占2.0%,而逻辑语言占 1.8%。以上加起来刚好百分之百。DD 凤凰平台 但是,这样的分类并不精确。现在的语言很少是单一思维,几乎都是多重思维,特别是面向对象和函数编程,因为两者间并没有冲突的地方,许多面向对象语言会渐渐纳入函数编程的特色。例如,尽管 C#3.0 具有相当多函数语言的特色,但是依然会被 Tiobe 归类于面向
3、对象语言的类别。函数编程最重要的基础是 LambdaCalculus,在 C#3.0 称为Lambda 表示式,在 Python 称为Lambda 函数,在PowerShell 称为 Scriptblock,在 Java 称为匿名方法,不 DD 凤凰平台 同语言会用不同名词称呼它,但其实都是类似的东西。从这个角度来看,许多主流语言多少都具备函数编程的能力。这个趋势应该会延续下去,许多既有语言推出新版本时,会持续加入函数语言的特色。另外,我最喜欢的 REBOL,许多人工智能专家使用的CommonLisp,近年兴起的 Erlang,Perl 高手唐凤专精的Haskell,这些也都是函数语言。为什么
4、我们喜欢函数编程?因为函数编程可以让我们把时间花在有生产力的事情 DD 凤凰平台 上,而不是处理许多琐碎的事。简单地说,函数语言可以让我们用简单的方式写程序,但是威力又强大。编程语言专家 RaviSethi 教授认为简单与威力,正是函数编程的两大优势。简单,来自于以值为中心,不用理会下面平台是什么机器、内存要如何配置、如何指定。函数编程的威力,则来自于递归以及将函数视为First-class的值。自动内存管理虽然始于函数语言,但是近年来已经进入各 DD 凤凰平台 大主流语言。而将函数视为一等的数据型别,也开始进入各大主流语言。这些都要归功于函数语言,尤其是 Lisp。Lisp 是函数语言的始祖
5、,诞生于 1Array58 年,相当于 50年前。换算成人类年龄的话,Lisp 已经算是程序语言中的人瑞了。Lisp 的后继者众多,其中,至今仍然最活跃的是诞生于 1Array80 年代的 CommonLisp,它在 Tiobe 的排名是第十七名。在 PeterSeibel 写出 PracticalCommonLisp一书,并得到 JoltAward 之后,让大家逐渐对 CommonLisp DD 凤凰平台 一改印象,开始认为它不只是学术上的语言,而是一种务实的语言。一般来说,相较于 C、Pascal 这类命令式编程,函数编程的缺点是效率比较差,这也是函数语言一直无法流行的主因之一。不过,随着
6、处理器速度的提升,编译程序技术的进步,都让效率不再是问题,甚至在数学运算上,用 Clean与 OCaml 开发出来的程序,效率也不会比 C 差。尤其是在多核心处理器和分布式计算时代,函数编程更是 DD 凤凰平台 比 Imperative 编程具有更强的优势。例如近年来逐渐受到重视的 Erlang,正是将重点放在 Concurrency 与容错上。用 Erlang 可以轻松开发出来的系统,如果改用别种语言开发,可能会造成程序长度暴增以及不稳定的情况。如果你想学习函数编程,而且如果你使用.NET 平台,我会建议你使用F#;如果你使用Java平台,你可以考虑JavaFX;如果你没有 Java 与.N
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 技术趋势Functional Pogramming函数编程风云再起费 技术 趋势 Functional Pogramming 函数 编程 风云 再起
限制150内