函数式编程 - 介绍

介绍

函数式编程由数学的形式系统(lambda演算)而来,主要是为了解决数学中的计算问题。在lambda演算的形式系统中,函数的参数是函数,返回值也是函数。所以说函数就是其基础。

我们先定义好互不冲突的基础原理,以及一些操作这些原理的法则,然后把这些原则或法则拼凑成复杂的规则或者定理。这种方法就叫做演算或者说是形式系统

在数学中,函数指的是定义域与值域的映射关系。所以在编程中,函数式编程更关注的是数据之间的映射。(而命令式编程关注的则是解决问题的步骤)。

函数是函数式编程的基础元素,完成了几乎所有的操作。而变量仅仅代表了某个表达式,且不能被修改,只能被赋值一次。

那么问题来了,变量不能被改变的话,它怎么保存状态?答案就是函数,准确的说是函数的参数(也就是说它将状态保存在了栈上)。如果你需要保存一个状态一段时间,并且时不时的修改它,那么你可以编写一个递归函数。

递归函数在函数式编程中非常之重要。但是这个方程运行起来会相对慢一些,因为它重复调⽤自己。同时它也会⼤量的消耗内存,因为它会不断的分配、创建内存对象。

优点

函数式编程肯定是有很多优点的,但是,没错就是这个但是,这里不介绍了,因为这个不是我写这篇文章的目的,有兴趣的可以看 资料2 的《傻瓜函数式编程-中文版》或者 资料3 的《JavaScript 轻量级函数式编程》系列。

资料

  1. 什么是函数式编程思维?:可以看一下用户 nameoverflow 的回答
  2. 傻瓜函数式编程-中文版:蛮有意思的普及文章
  3. JavaScript 轻量级函数式编程
文章目录
  1. 介绍
  2. 优点
  3. 资料
|