跳转到内容

函数式编程语言概念/函数式编程语言

来自 Wikibooks,开放书籍,开放世界

函数式编程语言概念

[编辑 | 编辑源代码]

函数式编程是一种声明式编程的形式,它是一种范式,在这种范式下,程序的计算由其基本逻辑描述。这种方法与命令式编程形成对比,命令式编程使用特定指令来描述计算是如何执行的。在严格的函数式语言中,唯一形式的计算是函数。与数学一样,函数通过等式建立了特定输入和输出之间的关系。对于函数式程序员来说,给定计算底层的具体实现是不可见的。从这个意义上说,我们倾向于说函数式编程允许人们专注于要计算的内容。

虽然函数式编程语言在传统上并没有像命令式语言那样在行业中取得成功,但近年来它们越来越受欢迎。函数式编程风格的这种日益普及是由于许多因素造成的。像 Haskell 这样的典型函数式语言的优点包括没有可变数据和相关的副作用,这种特性被称为 *纯度*,我们将进一步研究。随着新型并行架构的引入,我们也看到了并发编程技术的同步发展。因为函数式语言与全局状态无关,所以它们为没有竞争条件的实现提供了一个自然的框架。此外,它们简化了容错函数的设计,因为只有局部数据需要关注。

函数式风格出现的另一个原因是所谓的 *混合* 语言的出现。其中一个突出的例子是 Scala 编程语言。Scala 提供了函数式编程世界中的各种特性,例如高阶函数和模式匹配,同时具有类似的面向对象的特征。即使像 *for* 循环这样的命令式结构也可以在 Scala 中找到,这有助于减少函数式编程和命令式编程之间的障碍。此外,Scala 编译成 Java 虚拟机 (JVM) 的字节码,从而使两种语言之间能够轻松集成,并因此允许程序员逐步从一种语言迁移到另一种语言。Closure 是一种相对较新的 *通用* 语言,它也采用了编译成 JVM 的方法。最后,最初是在强命令式原则下设计的 Java 和 C++ 现在都包含了 lambda 表达式和其他函数式编程结构。

华夏公益教科书