1. 什么是函数式编程?
函数式编程是阿隆佐思想的在现实世界中的实现, 它将电脑运算视为数学上的函数计算,并且避免使用程序状态以及异变物件。 函数式编程的最重要基础是λ演算。而且λ演算的函數可以接受函數當作輸入(引數)和輸出(傳出值),函數式編程更加強調程序执行的结果而非执行的过程,倡导利用若干简单的执行单元让计算结果不断渐进,逐层推导复杂的运算,而不是设计一个复杂的执行过程。函数式编程的杀手锏正是当今世界上日益增长的并行性编程和元数据编程趋势。其主要思想就是把运算过程尽量写成一系列嵌套的函数调用
2. 函数式编程的特点:
- 函数是“第一等公民”:函数与其他数据类型一样,处于平等地位,可以赋值给其他变量,也可以作为参数,传入另一个函数,或者作为别的函数的返回值
- 只用“表达式”,不用语句:“表达式”--是一个单纯的运算过程,总是有返回值; ‘语句’--执行某种操作,没有返回值。函数式编程要求,只用表达式,不使用语句,也就是说,每一步都是单纯的运算,而且没有返回值。但在实际的I/O是不可能的,因此,编程过程中,函数式编程只要求把I/O限制到最小,不要有不必要的读写行为,保持计算过程的单纯性。
- 没有副作用:函数要保持独立,所有的功能就是返回一个新的值,没有其他行为,尤其是不得修改外部变量的值
- 不修改状态: 函数式编程只是返回新的值,不修改系统变量。
- 引用透明: 函数的运行不依赖于外部变量或"状态",只依赖于输入的参数,任何时候只要参数相同,引用函数所得到的返回值总是相同的
时间: 2024-10-22 13:34:52