Java函数式编程语言是什么?

Python012

Java函数式编程语言是什么?,第1张

函数式编程语言的核心是它以处理数据的方式处理代码。这意味着函数应该是第一等级(First-class)的值,并且能够被赋值给变量,传递给函数等等。

事实上,很多函数式语言比这走得更远,将计算和算法看得比它们操作的数据更重要。其中有些语言想分离程序状态和函数(以一种看起来有点对立的方式,使用面向对象的语言,这通常会将它们联系得更紧密)。

Clojure编程语言就是一个这样的例子,尽管它运行于基于类的Java虚拟机,Clojure的本质是函数式语言,并且在高级语言源程序中不直接公布类和对象(尽管提供了与Java良好的互操作性)。

Java编程范式

1.命令式编程

核心内容就是:“用语句更改程序的状态”

大多数流行的编程语言都或多或少基于命令式编程发展而来,命令式语言最典型的实例就是C语言

2.面向对象编程

面向对象编程经常与命令式编程联系在一起,在实践当中,两者是可以共存的。Java就是这种协作的生动证明

面向对象基于四个基本原则:封装、继承、多态、抽象

3.声明式编程

与命令式编程相反,声明式编程它指定程序应该做什么,而不具体说明怎么做。

纯粹的声明式语言包括数据库查询语言(如SQL和Xpath)以及正则表达式。

与命令式编程语言相比,声明式编程语言更加抽象,它们并不模拟硬件结构,因此不会改变程序状态,而是将它们转换为新状态,并且更接近数学逻辑

通常,非命令是的编程范式都被认为属于声明式类别。

4.函数式编程

函数式编程是声明式编程的子范式,与命令式编程相反,函数式变成不会改变程序的内部状态。

在函数式编程术语中,函数类似于数学函数,函数的输出仅依赖于其参数,而不管程序的状态如何,完全不受函数式是何时执行的影响

函数式语言受欢迎的原因之一是它们可以轻松的在并行环境中运行,这与多线程不太一样,函数式语言支持并行的关键在于它们的基本原理:函数仅依赖与输入参数而不依赖于程序的状态。它们可以在任何地方运行,然后将多个并行执行的结果连接起来并进一步使用