1.What?
Function Language是一种非冯诺依曼式的程序设计语言。函数式语言的主要成分是原始函数、定义函数和函数型。
这种语言具有较强的组织数据结构的能力,可以把某一数据结构(如数组)作为单一处理;可以把函数作为参数,其结果也可以为函数,这种定义的函数称为高阶函数,程序就是函数,程序作用在结构型数据上,产生结构型结果,从根本上改变了冯诺依曼语言的“逐词”工作方式。
2.Including?
Haskell:1980年代末期发布,Haskell函数式编程语言实在Miranda的基础上得到,它对Miranda进行了标准化,所以这种语言集合了其它相关函数式编程开发的原理,它无需花费太多的赘述就能完成一些数据结构,比如链表和矩阵,是当前最广泛地被用于研究的一种函数式编程语言。与此同时,它还被用作与在新语言设计时的标准模板。
Clean:它和Haskell有很多相同的地方。目前这门语言是用C写的。
Meta Language:被归类于非纯函数式语言,因为它允许了副作用和指令式编程的使用。
F#:这是一款针对.NET平台的开放研究的语言。
3.Why popular?
(1)函数式编程语言的代码十分简单,加快了开发的速度。
(2)使用函数式语言时,会大量使用到函数,从而减少了重复的代码,程序比较短。
(3)函数式语言更加接近于自然语言,程序员在学习它时更加快捷容易。
(4)函数式语言管理更加方便。
(5)函数式语言不会对外部产生依赖,也不会修改外界的状态。程序员只需要把指定的参数给函数,相同的参数返回的结果必定是相同的。
(6)函数式语言还支持并发编程,这就使程序员在开发时不必考录死锁的问题,因为它根本就不修改变量,所以就不存在锁线程的问题。
(7)函数式语言支持代码热升级。