为什么这两年函数式编程又火起来了呢?

函数式编程的好处由于命令式编程语言也可以通过类似函数指针的方式来实现高阶函数,函数式的最主要的好处主要是不可变性带来的。没有可变的状态,函数就是引用透明(Referential transparency)的和没有副作用(No Side Effect)。一个好处是,函数即不依赖外部的状态也不修改外部的状态,函数调用的结果不依赖调用...
为什么这两年函数式编程又火起来了呢?
函数式编程的好处由于命令式编程语言也可以通过类似函数指针的方式来实现高阶函数,函数式的最主要的好处主要是不可变性带来的。没有可变的状态,函数就是引用透明(Referential transparency)的和没有副作用(No Side Effect)。一个好处是,函数即不依赖外部的状态也不修改外部的状态,函数调用的结果不依赖调用的时间和位置,这样写的代码容易进行推理,不容易出错。这使得单元测试和调试都更容易。不变性带来的另一个好处是:由于(多个线程之间)不共享状态,不会造成资源争用(Race condition),也就不需要用锁来保护可变状态,也就不会出现死锁,这样可以更好地并发起来,尤其是在对称多处理器(SMP)架构下能够更好地利用多个处理器(核)提供的并行处理能力。

1.根本原因是穆尔定律不适用。如果CPU不能制造任何量子物质,它基本上就是反应堆的核心。并行程序将大大提高效率,但程序的稳定运行也是一个问题。面向对象的处理,这是有难度的,例如,java,锁和各种同步。
2.由于追求效率、安全、稳定和速度,在多核CPU上并行编程会引起火灾。然后java也努力改革和进步,如功能的演变,如Java8,λ提供流,努力提高函数(方法)来的一等公民。流的透明度与非表达性揭示功能思维。虽然java的FP现在可能走在OOP的极端形式,它也表达了FP的优势和未来。

3.cpu的性能提升将体现在核数增加,这样并行的程序运行速度会越来越快。并行的程序的写法就是找出不能并行的地方,其他地方都尽量并行。
如果要这样写,最需要避免的事情就是赋值。函数式编程的本质就是,规避掉“赋值”。
2018-03-20
mengvlog 阅读 8 次 更新于 2025-07-19 06:53:25 我来答关注问题0
  • 函数式编程的好处由于命令式编程语言也可以通过类似函数指针的方式来实现高阶函数,函数式的最主要的好处主要是不可变性带来的。没有可变的状态,函数就是引用透明(Referential transparency)的和没有副作用(No Side Effect)。一个好处是,函数即不依赖外部的状态也不修改外部的状态,函数调用的结果不依赖调用...

  • 在转向函数式编程的过程中,我发现了几个原因让我喜欢上这一编程风格。首先,函数式编程能够显著提高代码的可读性和可维护性,这体现在代码的简洁性和一致性上。其次,它提供了强大的抽象能力,使得复杂问题能够通过简单的函数组合来解决。再者,函数式编程强调的纯函数和无副作用特性,有助于程序的调试和...

  • anonymous 阐述函数编程的最新发展动态是什么?

    函数式编程的并行化:由于函数式编程强调函数之间的独立性和无状态性,因此函数式编程非常适合并行化处理。近年来,越来越多的函数式编程框架和库被开发出来,能够方便地实现并行化处理,提高程序的性能和效率。函数式编程与人工智能的结合:函数式编程的特点使其非常适合处理人工智能领域的问题。近年来,越来...

  •  翡希信息咨询 Lodash 函数式编程,让 JavaScript 开发更有趣

    Lodash 函数式编程确实让 JavaScript 开发更有趣且高效。具体体现在以下几个方面:不可变性:Lodash 提供 _.cloneDeep 函数,可以创建数据的深拷贝,确保数据在处理过程中始终保持不变,这对于数据安全和代码一致性至关重要。纯函数:Lodash 中的纯函数,如 _.concat,其输出结果只依赖于输入,不依赖于外...

  • qzhao_1 为什么要学函数式编程

    以 C 语言源程序为例,使用函数式的编程风格最重要的是有利于程序的调试、而且程序的可读性也很好、编程思路很清楚!!以下面的源程序进行讲解就一目了然了。在以下题目中,三次用到了求阶乘的代码(A!、(A-B)!、B!),现在使用调用子函数的编程风格,程序简洁明了、且可读性很强。如果不使用...

檬味博客在线解答立即免费咨询

编程相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部