3

我问这个问题是因为我不想在不久的将来在工作面试中羞辱自己。

我喜欢在编程时在一个地方创建许多函数,并尽可能避免创建类和处理实体状态。我可以说我喜欢函数式编程,这是我的编程风格或偏好,还是我必须使用像 F# 或 Haskell 这样的函数式编程语言才能这样说?


根据http://en.wikipedia.org/wiki/Comparison_of_programming_paradigms,我实际上是在使用面向对象的语言进行命令式编程。

4

4 回答 4

5

不。

函数式编程的特点是

  • 避免状态变化的对象(或其他任何东西)
  • 避免可变数据和可变数据结构(更简单地说;变量不会改变它们的值)
  • 所有(或几乎所有)函数都是pure

许多函数式语言也依赖于模式匹配和强类型,尽管可以在缺少这些特性的语言中以函数式风格进行编程。

要了解有关函数式编程的更多信息,请考虑阅读该领域的介绍(例如Learn You a Haskell for Great Good)。

于 2012-07-23T10:30:19.043 回答
4

不。将所有方法放在一个类中会使您成为过程式编程的粉丝,换句话说,您是反 OOP 的。

如果您的大多数/所有变量/参数/函数是或,如果可以应用这些限定符,您可以声称在 C#中进行函数式编程。constreadonly

于 2012-07-23T10:34:41.267 回答
2

我认为您所描述的是更多的过程编程,而不是功能编程。

于 2012-07-23T10:31:58.407 回答
1

Afaik 你可以用 oop 语言进行函数式编程。如果我理解正确,功能只是意味着您传递函数所需的所有内容,然后再次取出结果,不存储任何内容以供下次调用等。换句话说,您的类和方法是无状态的。

于 2012-07-23T10:29:32.493 回答