Swift中的函数式编程

第一次接触到“函数式编程”这个东西,是在大学时自学iOS时,发现一个叫reactivecocoa的框架,这个框架,人家叫他函数式响应式编程框架。叫他函数式是因为他的确是按照函数式编程这一范式在oc上实现了一系列的接口。响应式是因为他提供了一堆绑定的接口(bind),有点类似vue那种思想,数据驱动UI改变。所以在这种框架下mvvm自然就是最适合的架构啦。

简单的说说函数式编程

函数式编程是一个编程范式,就是面向对象编程一样。是一种范式。都源自λ 演算,λ 演算实际上是抽象了函数的表达,使得函数可以作为参数输入,也可以作为返回值返回。在函数式编程里面,函数是一等公民,我觉得reactivecocoa能得以出现,也是在iOS5之后,oc提供了block,block实际上就类似函数。如果没有block,reactivecocoa也搞不出来。
(TODO:想到什么写什么)

Swift中的函数式编程

我个人是真的很喜欢Swift这个语言,因为写起了很爽,有种觉得自己很geek的感觉哈哈。Swift虽然没有oc的runtime提供那么强的动态特性,但是正因为这样,安全啊!能少很多莫名其妙的运行时crash。

在swift里面,函数就是个一等公民啦。

func swap(inouta: Int, b: inout Int){
a=a+b
b=a-b
a=a-b
}
var swapFun =swap

在Swift妥妥的没问题好吗,直接拿来用,做参数做返回值统统都可以。

在函数式编程里,有个叫monad(单子)的概念。这实际上是一个。

你可能感兴趣的:(Swift中的函数式编程)