gpt4 book ai didi

oop - 正如 OOAD 之于 OOP,函数式编程的等价物是什么?

转载 作者:行者123 更新时间:2023-12-04 09:06:30 25 4
gpt4 key购买 nike

我最近涉足函数式编程 (FP) 领域,想知道如何为中等规模的应用程序“进行函数式思考”?特别是w.r.t。 FP的分析与设计。

通过 OOP,我们被训练去思考对象、它们的属性和关系。我们使用类和序列图对我们的分析/设计进行建模。然而,在为 FP 设计时,相同的模型似乎不合适。函数式编程的等效建模范例是什么?似乎 DFD 可能很合适,但我可能错了。

例如:我正在考虑设计一个模拟大富翁,使用 Haskell 的棋盘游戏,只是为了学习语言。在做 OOAD 时,你会想出像 board 这样的类。包含 items具有附加到它的属性/方法。你有 player以及可以在类图中捕获的各种其他对象及其关联关系。以及它们在序列图中的交互。然而,这些建模范式似乎不能很好地转移到函数式程序中。所以只是“如何”在功能上建模?

注意:我正在寻找可以解释如何分析和设计功能程序的具体引用资料/示例,因为我来自于一种高度面向对象的思维/建模方式。

最佳答案

根据西蒙·佩顿·琼斯的说法:

The language in which you write profoundly affects the design of programs written in that language. For example, in the OO world, many people use UML to sketch a design. In Haskell or ML, one writes type signatures instead. Much of the initial design phase of a functional program consists of writing type definitions. Unlike UML, though, all this design is incorporated in the final product, and is machine-checked throughout.



来源: Masterminds of Programming

因此,您实际上无需绘制所有花哨的 UML 图,而是编写类型定义以及 undefined在设计阶段。

关于oop - 正如 OOAD 之于 OOP,函数式编程的等价物是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22605097/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com