⑴ 函数式编程对数据处理,机器学习等工作有什么意义
最直观的感觉就是好用。随着经验的增加,你会发现函数式风格非常适合处理数据流,因为你很容易抽象出一些通用的模式(而你也不需要太多代码来描述这些模式)。
比如典型的map,rece,filter,它们就是一套非常通用的工具。再比如尾递归形式天生就是向量化的,非常适合表示高度形式化的迭代过程。
实际上只要函数可以方便的构造和传递(first-class),那么你就会发现语言的表达力上升了一个台阶。而如果你尽量坚持无副作用的约束,你往往还能得到思维上的解放(你不再会被某些奇怪的问题所困扰)
⑵ 函数式编程的特点
函数式编程具有五个鲜明的特点。
1、函数是"第一等公民"
所谓"第一等公民"(first class),指的是函数与其他数据类型一样,处于平等地位,可以赋值给其他变量,也可以作为参数,传入另一个函数,或者作为别的函数的返回值。
2、只用"表达式",不用"语句"
"表达式"(expression)是一个单纯的运算过程,总是有返回值;"语句"(statement)是执行某种操作,没有返回值。函数式编程要求,只使用表达式,不使用语句。也就是说,每一步都是单纯的运算,而且都有返回值。
3、没有"副作用"
所谓"副作用"(side effect),指的是函数内部与外部互动(最典型的情况,就是修改全局变量的值),产生运算以外的其他结果。
4、不修改状态
上一点已经提到,函数式编程只是返回新的值,不修改系统变量。因此,不修改变量,也是它的一个重要特点。
5、引用透明性
函数程序通常还加强引用透明性,即如果提供同样的输入,那么函数总是返回同样的结果。就是说,表达式的值不依赖于可以改变值的全局状态。
⑶ 编程中的函数是什么意思有什么用
编程函数一般是指把一段代码封装起来。然后数学函数对编程来说基本没用处,只会将原本简单的编程无限复杂化,实在有需要可以去复制别人的成品函数代码,没必要搞懂它