Как реализовать конечный автомат с помощью F #? А как ты переходишь? - PullRequest
0 голосов
/ 14 мая 2019

Я работаю над новым кодом и я новичок в F #. Как я могу реализовать конечный автомат

1 Ответ

0 голосов
/ 15 мая 2019

Это действительно зависит от того, какой тип конечного автомата вам нужен - вы должны написать больше о вашей конкретной проблеме, чтобы более точно определить проблему.

Тем не менее, один общий и очень распространенный шаблон кодирования конечных автоматов заключается в использовании рекурсивных функций для моделирования состояний и вызовов для изменения состояния модели.

Например, светофор с красным -> зеленым -> оранжевым -> .. циклом можно записать как:

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

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

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