问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

函数式编程的特点

发布网友 发布时间:2022-05-03 04:22

我来回答

5个回答

热心网友 时间:2022-05-14 17:02

函数式编程具有五个鲜明的特点。

1、函数是"第一等公民"
所谓"第一等公民"(first class),指的是函数与其他数据类型一样,处于平等地位,可以赋值给其他变量,也可以作为参数,传入另一个函数,或者作为别的函数的返回值。

2、只用"表达式",不用"语句"
"表达式"(expression)是一个单纯的运算过程,总是有返回值;"语句"(statement)是执行某种操作,没有返回值。函数式编程要求,只使用表达式,不使用语句。也就是说,每一步都是单纯的运算,而且都有返回值。

3、没有"副作用"
所谓"副作用"(side effect),指的是函数内部与外部互动(最典型的情况,就是修改全局变量的值),产生运算以外的其他结果。

4、不修改状态
上一点已经提到,函数式编程只是返回新的值,不修改系统变量。因此,不修改变量,也是它的一个重要特点。

5、引用透明性
函数程序通常还加强引用透明性,即如果提供同样的输入,那么函数总是返回同样的结果。就是说,表达式的值不依赖于可以改变值的全局状态。

热心网友 时间:2022-05-14 18:20

闭包和高阶函数
函数编程支持函数作为第一类对象,有时称为闭包或者仿函数(functor)对象。实质上,闭包是起函数的作用并可以像对象一样操作的对象。与此类似,FP 语言支持高阶函数。高阶函数可以用另一个函数(间接地,用一个表达式) 作为其输入参数,在某些情况下,它甚至返回一个函数作为其输出参数。这两种结构结合在一起使得可以用优雅的方式进行模块化编程,这是使用 FP 的最大好处。[4]
惰性计算
除了高阶函数和仿函数(或闭包)的概念,FP 还引入了惰性计算的概念。在惰性计算中,表达式不是在绑定到变量时立即计算,而是在求值程序需要产生表达式的值时进行计算。延迟的计算使您可以编写可能潜在地生成无穷输出的函数。因为不会计算多于程序的其余部分所需要的值,所以不需要担心由无穷计算所导致的 out-of-memory 错误。一个惰性计算的例子是生成无穷 Fibonacci 列表的函数,但是对第n个Fibonacci 数的计算相当于只是从可能的无穷列表中提取一项。
递归
FP 还有一个特点是用递归做为控制流程的机制。例如,Lisp 处理的列表定义为在头元素后面有子列表,这种表示法使得它自己自然地对更小的子列表不断递归。
函数式编程具有五个鲜明的特点。
函数是"第一等公民"
所谓"第一等公民"(first class),指的是函数与其他数据类型一样,处于平等地位,可以赋值给其他变量,也可以作为参数,传入另一个函数,或者作为别的函数的返回值。
举例来说,下面代码中的print变量就是一个函数,可以作为另一个函数的参数。
var print = function(i){ console.log(i);};
  [1,2,3].forEach(print);
只用"表达式",不用"语句"
"表达式"(expression)是一个单纯的运算过程,总是有返回值;"语句"(statement)是执行某种操作,没有返回值。函数式编程要求,只使用表达式,不使用语句。也就是说,每一步都是单纯的运算,而且都有返回值。

热心网友 时间:2022-05-14 19:55

函数式编程的特点一本复合一种编程的一些理念,然后根据他的一些数据参。照的编程来进行一系列的。

热心网友 时间:2022-05-14 21:46

其实函数式编程的话你也要学计算机就会知道。

热心网友 时间:2022-05-14 23:54

编程的特点,当然根据根据他的顺序和他的一些内存来编辑
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
为什么来大姨妈胸会胀 少儿学什么舞蹈 青年学什么舞蹈好 成年人学什么舞蹈 福州企业最低工资标准 2013年厦门的底薪是多少 生产要素的需求有哪些性质 生产要素的需求有何特点? 什么是生产要素需求 微观经济学要素需求什么是条件要素需求?它和要素需求有什么不同?_百度... Java函数式编程语言是什么? 江西牛牛乳业有限责任公司怎么样? 哪些编程语言区别了函数function和过程procedure? 大家都学习或者使用过什么函数式的编程语言啊? 函数式编程语言有哪些 哪些编程语言是函数式的 一分钟要珍惜,写出感受50字 关于珍惜时间的名言警句感受 读书心得体会关于惜时的 读《珍惜时间,热爱学习》有感 鲁迅先生珍惜时间感受50字 例假来颜色黑的怎么回事来例假不能用太大力是那 读珍惜时间的感受30字 最近几个月例假不正常,基本是两个月来一次,而且颜色刚开始黑黑的,请问是什么原因,如何治疗,调理? 生日寄语给男朋友 谁帮我写几个珍惜时间的感想 我赏100分!! 例假颜色黑是身体出现问题了吗? 祝福男友生日的暖心话 对于珍惜时间,你有什么感想? 男朋友生日一段暖心话有哪些? C语言都有哪些函数 江西瑞州汽运集团牛牛汽运有限公司怎么样? 羊肉粉丝锅的做法,羊肉粉丝锅怎么做好吃,羊肉 javascript 是函数式编程语言吗 C语言是函数式编程语言吗 什么是函数式编程 现在函数式编程用什么语言好? 支付宝天天领红包,谁都可以领吗,具体怎么做, 江西有哪些鲜奶品牌 在江西省高速违章在福建泉州德化县可以处理吗? 个性标签怎么弄qq上 怎样才能打败牛牛乐的竞争对手?牛牛乐是江西吉安的一种乳制品商标哦! QQ上个性标签咋弄? 江西都市网络信息技术有限公司怎么样? 手机QQ上个性标签怎么弄 江西宜春*原*颜赣辉被“双开”,涉及贪污数据到底有多大? 定远到江西三清山多少公里 江西IPTV(电信电视),网络机顶盒用的是维创E900-S 怎么投屏 女人么样B乃才是完美 2乃是什么意思