lib/automata/turing.rb
def transition(state, symbol)
      actions = @transitions[state][symbol]
      @tape.transition(symbol, actions['write'], actions['move'])

      # Flip the bits for halting states
      @accept = true if actions['to'] == 'ACCEPT'
      @reject = true if actions['to'] == 'REJECT'
      @head = actions['to']
    end
def transition(state, symbol)
      actions = @transitions[state][symbol]
      @tape.transition(symbol, actions['write'], actions['move'])

      # Flip the bits for halting states
      @accept = true if actions['to'] == 'ACCEPT'
      @reject = true if actions['to'] == 'REJECT'
      @head = actions['to']
    end
Determines the transition states, if any, from a given
 beginning state and input symbol pair.

 @note Turing machines have two unique states:
   * +ACCEPT+ Unique accept state
   * +REJECT+ Unique reject state
 @param [String] state state label for beginning state.
 @param [String] symbol input symbol.
 @return [Array] Array of destination transition states.