函数式编程简介
一、什么是函数式编程?
函数式编程主要基于数学函数和它的思想。函数式编程是一种范式,我们能够以此创建仅依赖输入
就可以完成自身逻辑的函数。这保证了当函数被多次调用时仍然会返回相同的结果。并且函数不会改变任何外部环境的变量,这将产生可缓存的、可测试的
代码库。
1.1函数
函数是一段可以通过其名称被调用的代码。它可以传递参数并返回值。
var simple = (a) => {return a} // 一个简单的函数
simple(6) // 用其名称调用
1.2方法
方法是一段必须通过其名称以及其关联的对象的名称被调用的代码。
var obj = {
simple : (a) => {return a}
}
obj.simple(5) // 用其名称以及其关联的对象的名称调用
二、函数式编程的特性
2.1引用透明性
遵循引用透明性的函数只能依赖来自参数的输入,而不会参杂全局引用。(换言之,函数就像一面镜子或一个恒等式)
var identity = (i) => {return i}
sum(4,5) + identity(1)
//根据引用透明性的定义,我们可以把上面的语句换为
sum(4,5) + 1
该过程被称为替换模型
。引用透明性使并发代码
和缓存
成为可能。
2.2声明式编程和编写抽象式代码
2.2.1用命令式方法遍历数组
var array = [1,2,3]
for(i=0;i<array.length;i++)
console.log(array[i]) // 打印1,2,3
命令式编程会精确的告诉程序如何做
。比如告诉编辑器“获取数组长度,循环数组,等”。
2.2.2用声明式方法遍历数组
var array = [1,2,3]
array.forEach((element) => console.log(element)) // 打印1,2,3
声明式编程只用告诉程序做什么
。开发者只需要关心自己真的需要做什么,而不必过多纠结怎么做。
Comments | NOTHING
Warning: Undefined variable $return_smiles in /www/wwwroot/blog.moonlet.cn/wp-content/themes/Sakura/functions.php on line 1078
Warning: Undefined variable $robot_comments in /www/wwwroot/blog.moonlet.cn/wp-content/themes/Sakura/comments.php on line 97