相关疑难解决方法(0)

纯函数式编程上下文中的面向对象编程?

在函数式编程(FP)上下文中使用面向对象编程(OOP)有什么好处吗?

我一直在使用F#已经有一段时间了,我注意到我的函数越多,无状态,我就越不需要将它们作为对象的方法.特别是,依靠类型推断使它们在尽可能多的情况下可用是有利的.

这并不排除需要某种形式的名称空间,这与OOP正交.也不鼓励使用数据结构.实际上,FP语言的实际使用在很大程度上依赖于数据结构.如果你看一下F Sharp Programming/Advanced Data Structures中实现的F#堆栈,你会发现它不是面向对象的.

在我看来,OOP与使用对象状态的方法主要是为了改变对象有很大的联系.在纯FP环境中,不需要也不需要.

一个实际的原因可能是能够与OOP代码交互,就像F#与.NET一样.除此之外,有什么理由吗?Haskell世界的经验是什么,编程是更纯粹的FP?

我将非常感谢有关该问题的论文或反事实现实世界的例子.

oop f# haskell functional-programming scala

42
推荐指数
3
解决办法
3788
查看次数

标签 统计

f# ×1

functional-programming ×1

haskell ×1

oop ×1

scala ×1