1 普通的函数式编程,就是函数可以作为参数、返回值。这使得:
1.1 链式编程成为可能,Masonry就是一个特别好的例子。
1.2 异步调用,函数式编程的结果很像观察者模式。
1.3 同步调用,函数式编程的结果有点像模板模式。
2. 稍纯一些的函数式编程,则强调只用常量,不用变量,也就是可以赋值,不能修改删除,机器学习里面基本都是这么搞。强调输入一样时,输出也一样。
3. monad,以及连赋值都不允许的函数式,之前只听过,没有研究。看了这篇文章中推荐的王垠的博文,感觉理解加深了不少,尤其是参数、局部变量、全局变量与“状态”、数据传输关系的理解上。真的是坑…
4. swift里面支持的高阶函数,有点儿像上面第二种函数式编程。
5. 我理解的响应式编程,就是分离事件的发起者和接受者。其实target-action,block,delegate,kvo,通知,都是可以看作响应式编程。
6. 从设计模式的角度来说,响应式编程与观察者模式、状态模式的思想最接近。
展开