NightPxy 个人技术博客

函数式编程

Posted on By NightPxy

概述

函数式编程(英语:functional programming)或称函数程序设计,又称泛函编程,是一种编程范型,它将电脑运算视为数学上的函数计算,并且避免使用程序状态以及易变对象。函数编程语言最重要的基础是λ演算(lambda calculus)。而且λ演算的函数可以接受函数当作输入(引数)和输出(传出值)

从这段函数式编程的维基百科定义,可以提取出3个函数式编程的非常有意义的特征

  • 强调函数计算
  • 强调数学意义
  • 强调无状态与不可变

数学意义

来看非函数式编程中非常常见的赋值模型 a = a + 1
这段代码在开发人员看来非常正确的过程,在其他人特别搞数学的人看来简直不可理喻
任意变量加一怎么可能还等于自身
这是赋值模型与数学模型不相容的地方.因为赋值模型的本意就是带变量变更的有后果操作

函数式编程强调 函数的确定性 f(x) = y在任何情况下都保持唯一的结果