如何选择编程语言(6)函数式编程

如何选择编程语言(6)函数式编程
0

本系列的其他文章:
如何选择编程语言(1)执行方式
如何选择编程语言(2)内存管理
如何选择编程语言(3)强类型 VS 弱类型
如何选择编程语言(4)并行/并发模型
如何选择编程语言(5)面向对象
如何选择编程语言(7)对 null 的处理
如何选择编程语言(8)官方 API
如何选择编程语言(9)第三方库生态

6.1. 函数是否“第一公民”

6.1.1. 函数是“第一公民”

函数与数字、布尔值等一样是一种基础的数据类型,可作为变量、类的成员属性、函数的输入参数或返回值的类型:
JavaScript、Python、Kotlin、Haskell、Erlang 等

6.1.2. 函数不是“第一公民”

C 语言、C++ 、Java、C#

6.2. 是否支持 Lambda 表达式

6.2.1. 不支持

C 语言、Java 1.7 及以前版本、实现 ECMAScript 6 以前的 JavaScript

6.2.2. 支持

C++ 、Java 1.8 及以后版本、Kotlin、Python、实现 ECMAScript 6 或更高版本的 JavaScript

6.2.3. Lambda 表达式的优劣

6.2.3.1. 优点

能免去函数命名、严格声明的麻烦,使代码更简洁。函数的使用范围小且明确。这在不允许类外函数的语言(如 Java、C#)中尤为明显。

6.2.3.2. 缺点

若被滥用,尤其是多层 Lambda 表达式嵌套时,会使代码可读性、可维护性变差。