Skip to content

Latest commit

 

History

History
30 lines (16 loc) · 1.09 KB

2016-04-08-hanshushi.md

File metadata and controls

30 lines (16 loc) · 1.09 KB
layout title category date
post
Swift函数式编程
算法
2016-04-08 19:45

尝试用函数式的方式进行思考。

Swift函数式程序应该具有的一些特质上:

模块化:将程序分解为模块单元,通过函数装配,以定义完整的程序。只有避免在两个独立组件之间共享状态时,才能将一个大型程序分解为更小的单元。

对可变状态的谨慎处理:

类型:

###译序

面向对象强调的是将与某数据类型相关的一系列操作都封装该数据类型中去,在数据类型中难免存在大量状态,以及相关行为。虽然这很符合人类的逻辑直觉,但当类型关系变得错综复杂的时候,类型中状态的改变和类型之间彼此的继承和依赖将使程序的复杂度几何上升。

避免使用程序状态和可变对象,是降低程序复杂度的有效方式之一,而这也正是函数式变成的精髓。函数式编程强调执行的结果,而非过程。

世界上最纯粹的函数式编程语言非 Haskell 莫属。

swift遵循了函数式的设计模式。