swift演示functors, applicatives, and monads.docxVIP

  • 5
  • 0
  • 约2.69千字
  • 约 11页
  • 2017-07-23 发布于浙江
  • 举报
Swift演示Functors, Applicatives, and Monads  最近学习RAC的了解到其核心思想FRP即函数响应式编程,来学习一下什么是函数式编程。  以前一直行令式编程,即一行一行的代码拼凑起来完成程序的各个状态。函数式编程,从名字看就是用一个个函数来编程,就是用函数来改变程序的各个状态。我的简单理解就是一个盒子封装了一个值,这个盒子通过自身的一个方法可以运用一个同样被封装在盒子里的方法,并返回一个盒子封装了运行结果的值。这个值可以继续运用方法返回一个带有新值的盒子,这样一个函数一个函数继续调用。  下面用图片和Swift演示这三者。  Functors  我们知道一个方法如何应用到一个值上,但如何这个值被封装在一个盒子里面就无法应用到值上:  这就是map函数的由来,map函数定义方法如何应用到值上。任何定义了map的类型都是Functor,map内部实现如下:  盒子可以认为就是Optional类型,Optional是对值的一种封装,它把值和空放到了一个枚举(enum)类型中。所以可以这样做:  Optional.Some(2).map { $0 + 3 }  // = .Some(5)  map函数让方法+3应用到了2值上,因为Optional是一个Functor,它表明了map是如何应用.Some和.None。  func map(f: T - U)

文档评论(0)

1亿VIP精品文档

相关文档