Конечный автомат в Ruby с использованием Fibers? - PullRequest
2 голосов
/ 25 сентября 2010

Я пытаюсь разобраться с новым классом Fiber в Ruby 1.9, и я прочитал, что одно из наиболее распространенных приложений для Fibers (и сопрограмм) находится в конечных автоматах.

К сожалению, моя Fiber -фу не так уж и сложна, поэтому я надеялся, что один из вас покажет мне простой пример состояния машины в Ruby, используя Fiber s

спасибо:)

1 Ответ

1 голос
/ 29 сентября 2010

http://github.com/rdp/ruby_tutorials_core/wiki/enumerator показывает, как обернуть один, который кормит другого, который кормит другого.

Чтобы использовать это как машину состояний, я полагаю, что она разбивает каждое «состояние» на свое собственное волокно, как

AAAB (на входе x) => AAAB (каждый [A, A, A, b] должен быть своим собственным волокном и просто передавать вход, пока он не достигнет последнего)

...