如何使用F#实现状态机?以及如何过渡?

时间:2019-05-14 18:49:16

标签: f# state-machine state-space

我正在开发新代码,但是对F#不熟悉。如何实现状态机

1 个答案:

答案 0 :(得分:0)

这实际上取决于您需要哪种状态机-您应该写更多有关您的确切问题的信息,以便更精确地指定问题。

但是,编码状态机的一种通用且非常常见的模式是使用递归函数对状态进行建模并调用对状态转换进行建模。

例如,带有红色->绿色->橙色-> ..循环的交通灯可以写为:

let rec red () = 
  printfn "In red state"
  green ()

and green () = 
  printfn "In green state"
  orange ()

and orange () = 
  printfn "In orange state"
  red ()