在网上找了一些函数式编程的资料,摘取了两个链接里的内容。
函数式编程:
首先,引用wiki百科解释:
In computer science, functional programming is a programming paradigm that treats computation as the evaluation of mathematical functions and avoids state and mutable data.
函数式编程是一种编程模型,他将计算机运算看做是数学中函数的计算,并且避免了状态以及变量的概念
由于原文写得很好了,而且偶也是初步接触,就不瞎咧咧了,还是看原文:http://www.cnblogs.com/kym/archive/2011/03/07/1976519.html
另外,了解到JavaScript是一种可以写函数式编程的语言:请看原文:http://www.ruanyifeng.com/blog/2017/02/fp-tutorial.html
摘要:
“本质上,函数式编程只是范畴论的运算方法,跟数理逻辑、微积分、行列式是同一类东西,都是数学方法,只是碰巧它能用来写程序。
所以,你明白了吗,为什么函数式编程要求函数必须是纯的,不能有副作用?因为它是一种数学运算,原始目的就是求值,不做其他事情,否则就无法满足函数运算法则了。”
函数式编程是一种单纯的用于计算的函数,就是用代码实现的数学里的函数:f(x) = y,变量x和函数值有明确的一对一的关系。包含了一种确定性的关系。
python不是函数式编程语言,但是包含几个重要的函数式编程实现:lambda, apply(), filter(), map(),reduce(),列表解析
顺便讲一下声明式编程和指令式语言
指令式编程:
从字面上就可以理解,就是用代码编写一条一条执行的语句,实现一定的逻辑或者计算的函数(或方法)。也就是告诉机器怎么做。HOW
最经典的语言:C/C++,java等
声明式语言:
与命令式编程相对立。它描述目标性质,让计算机明白目标,而非流程。WHAT
声明式语言包括数据库查询语言(SQL,XQuery),正则表达式,逻辑编程,函数式编程和组态管理系统。