Universal Turing machine: Difference between revisions

m
mNo edit summary
Line 835:
<lang haskell>
import Control.Monad.State
import Data.List (intersperse, nub, find)
 
data TapeMovement = MoveLeft | MoveRight | Stay deriving (Show, Eq)
Line 890:
let (pos, currentState, tape) = current m
item = tape !! pos
validRulesisValid = filter (\(e, i, _, _, _) ->= e == currentState &&
(i == item || i == noOpSymbol m)) (rules m)
return $! find isValid (rules m)
if null validRules
then return Nothing
else return $! Just (head validRules)
 
msgToLog :: a -> UTM a ()
Anonymous user