| Path: | dfa.rb |
| Last Update: | Thu Mar 26 10:29:19 -0600 2009 |
State machines made simple. Here is an example. Read more in the DFA class documentation.
d = DFA.new('A', ['A','C'])
d.transition do |s,a|
ss = case [s, a]
when ['A', 0]: 'B'
when ['A', 1]: 'C'
when ['B', 0]: 'B'
when ['B', 1]: 'C'
when ['C', 0]: 'D'
when ['C', 1]: 'C'
when ['D', 0]: 'A'
when ['D', 1]: 'C'
else raise "Invalid transition (#{s}, #{a})"
end
print ss
ss
end
ary = [0,0,0,1,1,1,0,1,1,1,0,0].map do |a|
d.eat a
end
puts
p ary
Download/contribute at GitHub.