在函数式编程语言中使用对象的有效理由是什么?我看到f#是一种函数式编程语言,在处理类的.net生态系统时,它在对象方面给予了很大的帮助.但是除了与其他程序集/程序的交互可能用c#编写之外,为什么有人会选择使用对象来分解以函数为导向的语言或样式的程序?
混合一种程序风格是一种帮助还是障碍?
功能和面向对象的设计使不同类型的扩展变得容易.给定功能设置中的区别联合,很容易定义任何数量的函数,但是很难在类型中添加其他情况,因为这需要返回为每个函数添加附加的情况.匹配类型.另一方面,给定基本类型(或接口)OO设置,很容易添加新的子类型,但是向基类型添加新操作很难,因为它可能需要修改现有的子类型以添加新操作的实现每个人.
根据与手头任务最相关的可扩展性类型,功能或面向对象的方法可能更有意义,因此有两个选项可用是很好的.一种流行的方法是使用"小的"功能方法和"大型"的OO方法(例如,在与Luke Hoban的播客中提到的).