为什么在C上进行函数式编程

时间:2019-06-21 05:35:48

标签: c functional-programming

函数式编程对普通的过程语言(如c)或面向对象的编程语言(如c ++)如何有用?它在哪里发光?

2 个答案:

答案 0 :(得分:3)

C缺少需要解决的功能编程的几个功能(同样,尽管您可以用C编写面向对象的样式,但也需要解决几个缺少的功能)。

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

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

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

答案 1 :(得分:-5)

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

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

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