在函数式编程语言中使用Objects有什么好处?

时间:2011-02-02 04:59:57

标签: f#

在函数式编程语言中使用对象的有效理由是什么?我看到f#是一种函数式编程语言,在处理类的.net生态系统时,它在对象方面给予了很大的帮助。但是除了与其他程序集/程序的交互可能用c#编写之外,为什么有人会选择使用对象来分解面向函数的语言或样式的程序?

混合一种风格的程序会证明是一种帮助还是一种障碍?

2 个答案:

答案 0 :(得分:5)

功能和面向对象的设计使不同类型的扩展变得容易。给定功能设置中的区别联合,很容易定义任何数量的函数,但是很难在类型中添加其他情况,因为这需要返回为每个函数添加额外的情况。匹配类型。另一方面,给定基本类型(或接口)OO设置,很容易添加新的子类型,但是向基类型添加新操作很难,因为它可能需要修改现有的子类型以添加​​新操作的实现每个人。

根据与手头任务最相关的可扩展性类型,功能或面向对象的方法可能更有意义,因此有两个选项可用是很好的。一种流行的方法是使用“小的”功能方法和“大型”的OO方法(例如,this podcast中提到的Luke Hoban)。

答案 1 :(得分:0)

对象提供封装,使大规模编程更容易。

  

在函数式编程语言中使用对象的有效理由是什么?

由于各种原因,对象在函数式语言中使用:

  • 大规模的节目结构。

  • 与现有OOP代码的互操作性(例如,在JVM或CLR上)。

  • 使用更多类扩展类层次结构的能力是一个很自然的问题。

  

混合一种风格的程序会证明是一种帮助还是一种障碍?

可以提供帮助,但没有充分理由这样做是不明智的。