当我在c#中定义一个类中的所有函数时,我在进行函数式编程吗?

时间:2012-07-23 10:25:56

标签: c# oop functional-programming

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

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


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

4 个答案:

答案 0 :(得分:5)

没有

函数式编程的标志是

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

许多函数式语言也依赖于模式匹配和强类型,但可以使用缺少这些功能的语言以函数式编程。

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

答案 1 :(得分:4)

没有。将所有方法放在一个类中会让你成为程序编程的粉丝,换句话说,你是反OOP。

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

答案 2 :(得分:2)

我认为你描述的是更多的程序编程,而不是功能编程。

答案 3 :(得分:1)

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