0

我正在编写一个新代码,而且我是 F# 的新手。如何实现状态机

4

1 回答 1

0

这真的取决于你需要什么样的状态机——你应该写更多关于你的确切问题以更准确地指定问题。

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

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

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

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

and orange () = 
  printfn "In orange state"
  red ()
于 2019-05-15T10:23:58.817 回答