我用 C++ 和 Java 写过一些状态机,但从来没有用像 Ocaml 这样的函数式语言
问题是我不知道我是否可以从对象语言版本中调整代码,因为在 Ocaml 中,记录和变体比类更强大;
所以,我需要一个事件驱动的有限状态机(类似于 UML 中的分层),易于配置
有经验的人可以发布一个简单的示例吗?只是为了避免最常见的陷阱
谢谢 :)
编辑 16/03:没有可变状态可以做到吗?
而且我想以“FSM”的名称正确封装它,我应该选择一个模块还是一个类?
最佳答案
这里有一个很好的答案,它展示了 OCaml 在表示有限状态机方面的表现力和优雅:
automata in ocaml
对于更严重的使用,您可以尝试查看一些有限状态机库,例如 fsm 图书馆 here .
关于functional-programming - 如何在 Ocaml 中表示一个简单的有限状态机?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9434050/