【发布时间】:2014-05-01 13:20:03
【问题描述】:
我最近涉足函数式编程 (FP) 领域,想知道如何为中等规模的应用程序“进行函数式思考”?特别是w.r.t。 FPs的分析与设计。
通过 OOP,我们可以根据对象、它们的属性和关系进行思考。我们使用类和序列图对我们的分析/设计进行建模。然而,在为 FP 设计时,相同的模型似乎不合适。函数式编程的等效建模范例是什么?看起来 DFD 可能很合适,但我可能错了。
例如:我正在考虑设计一个模拟大富翁,使用 Haskell 的棋盘游戏,只是为了学习语言。在执行 OOAD 时,您会提出像 board 这样的类,其中包含 items 附加了属性/方法。您有player 和各种其他对象及其关联关系,可以在类图中捕获。以及它们在序列图中的交互。然而,这些建模范式似乎不能很好地转移到函数式程序中。那么只是“如何”在功能上建模?
注意:我正在寻找可以解释如何分析和设计功能程序的具体参考资料/示例,因为我来自于一个高度面向对象的思维/建模方式。
【问题讨论】:
-
我真的不认为简单的大富翁模拟可能是获得函数式编程风格的最佳项目。垄断有一种相当紧迫的感觉,我认为你可能会在尝试对其进行功能编码时绊倒自己。为什么不尝试一下解析器、正则表达式匹配器,甚至是玩具语言的编译器?
标签: oop haskell functional-programming ooad