函数响应式编程思想

函数式编程

函数式编程,我们理所当然的会想到高等数学中的函数,y = f(x). 它有至少一个输入,至少一个输出,输入相同时输出相同。
函数式编程的第一个特点就是可以把函数作为参数传递给另一个函数(即y=f(x)中,自变量x也是一个函数,x=t(x)),也就是所谓的高阶函数。例如,对数组进行排序,可以传入一个排序函数作为参数:

var array: Array = [3, 6, 1, 7, 2, 4, 9, 5, 8]
// 从大到小对数组排序
func xx(num1: Int, num2: Int) -> Bool {
    return num1 > num2
}
array.sort(by: xx)

函数式编程的第二个特点就是可以返回一个函数,这样就可以实现闭包或者惰性计算.

函数式变成可以简化代码。在代码的可维护性上, 由于函数输入相同时输出相同 ,所以只要输入确定,输出就是确定的,容易测试和维护。

响应式编程(RP)

响应式编程是一种面向数据流和变化传播的编程范式。这意味着可以在编程语言中很方便地表达静态或动态的数据流,而相关的计算模型会自动将变化的值通过数据流进行传播。
例如,在命令式编程环境中,a:=b+c表示将表达式的结果赋给a,而之后改变b或c的值不会影响a。但在响应式编程中,a的值会随着b或c的更新而更新。
  电子表格程序就是响应式编程的一个例子。单元格可以包含字面值或类似"=B1+C1"的公式,而包含公式的单元格的值会依据其他单元格的值的变化而变化。
  响应式编程最初是为了简化交互式用户界面的创建和实时系统动画的绘制而提出来的一种方法,但它本质上是一种通用的编程范式。
  例如,在MVC软件架构中,响应式编程允许将相关模型的变化自动反映到视图上,反之亦然。

函数响应式编程(FRP)

FRP能让你的代码像数学一样简洁,业务像流水一样清晰流畅。

WechatIMG14318.jpeg

你可能感兴趣的:(函数响应式编程思想)