关于functional program language 的理解

Posted hhhkai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于functional program language 的理解相关的知识,希望对你有一定的参考价值。

简单说,"函数式编程"是一种"编程范式"(programming paradigm),也就是如何编写程序的方法论。

是一种编程典范,它将计算机运算视为数学上的函数计算,并且避免使用程序状态以及易变对象。

函数编程支持函数作为第一类对象,有时称为闭包或者仿函数(functor)对象。
函数式编程的列子有:
1.  LISP 
2. Haskell
3.  Scheme
4.  Erlang
用函数式编程的优点:
1. 代码简洁,开发快速
函数式编程大量使用函数,减少了代码的重复,因此程序比较短,开发速度较快。
2. 接近自然语言,易于理解
函数式编程的自由度很高,可以写出很接近自然语言的代码。
3. 更方便的代码管理
函数式编程不依赖、也不会改变外界的状态,只要给定输入参数,返回的结果必定相同。
因此,每一个函数都可以被看做独立单元,很有利于进行单元测试(unit testing)和除错(debugging),以及模块化组合。
4. 易于"并发编程"
函数式编程不需要考虑"死锁"(deadlock),因为它不修改变量,所以根本不存在"锁"线程的问题。
不必担心一个线程的数据,被另一个线程修改,所以可以很放心地把工作分摊到多个线程,部署"并发编程"(concurrency)。
5. 代码的热升级
函数式编程没有副作用,只要保证接口不变,内部实现是外部无关的。

以上是关于关于functional program language 的理解的主要内容,如果未能解决你的问题,请参考以下文章

Function Programming - 纯函数(Pure Function)

python:Functional Programming

Functional programming

[Functional Programming] Function modelling -- 8. Compose Functors

golang 甚至更快版本的http://benchmarksgame.alioth.debian.org/u64q/program.php?test=binarytrees&lang=go&

Error starting static Resources java.lang.IllegalArgumentException: Document base D:Program Filesa(示