Functional Programming

王朝百科·作者佚名  2010-10-21
窄屏简体版  字體: |||超大  

所谓的functional programming 就是函数式编程,这也是一种编程方法,或者说是编程模式,同面向过程的编程,以及面向对象的编程,面向逻辑的编程一样。

在最新的visual studio 2010里微软新增加了一门语言 F# 这门新的语言就是为函数式编程新开发的。

微软计划将慢慢整合F#至.NET平台并使F#最终成为.NET平台的顶峰语言。

众所周知,F#是一种函数型程序设计(FP,Functional Programming)语言。然而F#对IP(Imperative Programming)与OOP(Object Oriented Programming)的支持几乎一样的出色。

F#也许终将成为程序核心部分设计的首选,而C#与VB等将在用户界面交互设计方面继续发挥其强大的潜力。

函数式编程是种编程典范,它将电脑运算视为函数的计算。函数编程语言最重要的基础是 λ 演算(lambda calculus)。而且λ演算的函数可以接受函数当作输入(引数)和输出(传出值)。

和指令式编程相比,函数式编程强调函数的计算比指令的执行重要。

和过程化编程相比,函数式编程里,函数的计算可随时调用。

历史

虽然 λ 演算并非设计来于计算机上执行,但可视为第一个函数式编程语言。1980年代末期,Haskell发布,企图集合很多函数式编程研究里的想法。

速度和空间上的顾虑

函数式编程常被认为严重耗费在CPU和内存资源。主因有二:

早期的函数式编程语言实现时并无考虑过效率问题。

非函数式编程语言为求提升速度,会在某些部分放弃边界检查或垃圾回收等功能。

缓式评估亦为语言如Haskell增加了额外的管理工作。

函数式编程语言

纯函数式的程式没有变量和副作用。

函数式编程经常使用递归。

纯函数式编程语言

因为纯函数式程式设计语言没有变量,函数没有副作用,编写出的程式可以利用memoization、common subexpression elimination和平行计算在运行时和编译时得到大量优化。

例子

函数式编程中最古老的例子莫过于1958年被创造出来的LISP了,透过 LISP,可以用精简的人力。较现代的例子包括Haskell、Clean、Erlang和Miranda等。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航