函数式编程与普通过程语言(如 c)或面向对象编程语言(如 c++)相比有何用处?它的亮点在哪里?
最佳答案
C 缺乏一些需要解决的函数式编程功能(同样,虽然您可以用 C 语言编写面向对象的风格,但您也需要解决一些缺失的功能)。
C 函数不是一等对象。您不能从函数返回函数、将函数存储在变量中或将函数传递给另一个函数。您不能嵌套函数,也不能创建匿名函数。解决方法是,C 确实允许您使用函数指针,因此您可以编写一个将函数指针作为参数的函数,但这并不像在面向函数式编程的语言中所做的那样干净。
C 缺乏闭包,闭包是捕获程序中特定点的执行“环境”的一种方式(即,变量名绑定(bind)到什么)。
C 缺乏泛型,除了最广泛的意义上。在大多数函数式语言中,可以编写一个适用于大量不同类型的函数,因为它们不依赖于这些类型的特定属性。
关于c - 为什么函数式编程优于 C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56697403/