【问题标题】:Why functional programming over c [closed]为什么在 c 上进行函数式编程 [关闭]
【发布时间】:2019-11-03 22:46:03
【问题描述】:

函数式编程与 c 等普通过程语言或 c++ 等面向对象编程语言相比有何用处?它的优势在哪里?

【问题讨论】:

标签: c functional-programming


【解决方案1】:

C 缺少一些需要解决的函数式编程特性(同样,虽然您可以在 C 中以面向对象的风格编写代码,但您也需要解决一些缺失的特性)。

C 函数不是一流的对象。您不能从函数返回函数、将函数存储在变量中或将函数传递给另一个函数。您不能嵌套函数,也不能创建匿名函数。解决方法是 C 确实允许您使用指向函数的指针,因此您可以编写一个将指向函数的指针作为参数的函数,但这并不像您在面向函数式编程的语言中所做的那样干净。

C 缺少闭包,闭包是一种捕获程序中特定点执行“环境”的方式(即,绑定到哪些变量名)。

C 缺乏泛型,除了最广泛的意义。在大多数函数式语言中,可以编写一个适用于大量不同类型的函数,因为它们不依赖于这些类型的特定属性。

【讨论】:

    【解决方案2】:

    C 是一种低级语言,让程序员可以完全控制程序的执行。它是针对高级抽象语言而设计的。

    函数式编程并不流行,现在使用的大多数语言都是面向对象的。

    如果您需要能够控制程序和环境的语言,您应该考虑使用 C++

    【讨论】:

    • 哪种语言不能让您控制程序和环境?
    猜你喜欢
    • 2023-03-02
    • 2021-08-10
    • 2010-11-04
    • 2010-09-12
    • 2010-09-06
    • 2012-07-14
    • 2013-02-27
    • 2010-10-06
    相关资源
    最近更新 更多