函数编程的学习归纳(增)

来源:互联网 发布:mac keeper劫持 编辑:程序博客网 时间:2024/06/05 15:04

1.函数特点:

一级函数:函数和int,char地位用法一样,属于基本类型。

尾递归:递归是函数编程必不可少的特性,尾递归会进行性能优化。

函数是独立的:不改变外面变量状态并且 也不因外部而改变。


还包括其他特性:

高阶函数:输入一个函数,输出一个函数

currying:假设一个单参数函数返回一个单参数函数,其调用 方式 f(3)(4),可用来实现部分偏函数

var foo = function(a) {  return function(b) {    return a * a + b * b;  }}使用currying:foo(3)(4)

闭包:返回一个函数,该函数里面可以对齐包含的类成员进行操作.

偏应用函数(不是数学):假设一个函数 f(x,y),偏函数为fy(x),有些语言会 自动生成

int foo(int a, int b, int c) {  return a + b + c;}int foo23(int a, int c) {  return foo(a, 23, c);}//偏函数 会自动生成

模式匹配:f(1),f( 2 ) , f(n )为 3个 函数,当f(n)的内容为 f(n-1)+f(n-2)时候并且 n=3时候,会自动调用f(1),f(2)

应用:


优点:并行,惰性求值,输入输出确定性(输入即知道输出),易于管理(单元测试,debug),代码热部署

对于人的优势:简洁,接近自然语言易理解。




0 0
原创粉丝点击