代码改变世界

转:iOS与函数式编程

2017-10-12 11:45  dengchaojie_learner  阅读(229)  评论(0编辑  收藏  举报

函数式编程当中的函数f(x)强调无状态,其实是强调将状态锁定在函数的内部,一个函数它不依赖于任何外部的状态,只依赖于它的入参的值,一旦值确定,这个函数所返回的结果就是确定的。可能有人会觉得入参也是状态,是外部传入的状态,其实不然,我前面说过变量才会有状态,值是没有状态的,

函数式编程当中的函数,可以一句话归结为:隔绝一切外部状态,传入值,输出值。

纯函数即为函数式编程所强调的函数,上述两点可翻译为:

  1. 不依赖外部状态
  2. 不改变外部状态

所以对函数式编程当中函数的理解,最后还是落实到状态的理解。静止的状态是安全的,变化的状态是危险的,之所以危险可以从两个维度去理解,时间和空间。