对函数式编程语言的理解

1.什么是函数式语言?

函数式语言(functional language)一类程序设计语言,是一种非冯·诺伊曼式的程序设计语言。函数式语言主要成分是原始函数、定义函数和函数型。这种语言具有较强的组织数据结构的能力,可以把某一数据结构(如数组)作为单一值处理;函数式编程语言最大的特点就是函数可以作为参数、结果也可以是函数,这种定义的函数称为高阶函数,程序就是函数,程序作用在结构型数据上,产生结构型结果,从根本上改变了冯·诺伊曼式语言的“逐词”工作方式。

函数式编程(英语:functional programming)或称函数程序设计,又称泛函编程,是一种编程范型,它将电脑运算视为数学上的函数计算,并且避免使用程序状态以及易变对象。函数编程语言最重要的基础是λ演算(lambda calculus)。而且λ演算的函数可以接受函数当作输入(引数)和输出(传出值)。

2.函数式语言有哪些?

常见的函数式编程语言有Haskell 、 OCaml 、coljure、scala,其中Bloomberg 和谷歌、Facebook就是用 Haskell 函数式编程语言进行垃圾过滤。

3.函数式编程语言为什么会流行起来?

在函数式编程中,由于数据全部都是不可变的,所以没有并发编程的问题,是多线程安全的。可以有效降低程序运行中所产生的副作用,对于快速迭代的项目来说,函数式编程可以实现函数与函数之间的热切换而不用担心数据的问题,因为它是以函数作为最小单位的,只要函数与函数之间的关系正确即可保证结果的正确性。

原因一:函数式编程语言的表达方式更加符合我们日常生活中的语法、代码的可读性更强,实现同样的功能函数式编程相比较于面向对象编程所需要的代码更加少、代码更加简洁清晰。

原因二:由于函数式编程语言更加简洁的特点从而广泛应用于科学研究中,科研项目对代码的工程化要求低,开发速度快从而函数式编程语言更加高效。

函数式编程语言的缺点:

由于函数式编程语言的数据都是不可变的所以所有的变量在程序运行期间都一直存在,从而非常占用计算机的运行资源,此外函数式编程对于程序开发人员的要求很高,如果开发人员对函数式编程理解不够深刻那么开发出的程序就会出现很大的问题。

猜你喜欢

转载自www.cnblogs.com/yuanchao-blog/p/10439990.html