26 lines
492 B
Haskell
26 lines
492 B
Haskell
import Data.Set
|
|
|
|
data DFA = DFA {
|
|
states :: Set String
|
|
, sigma :: Set String
|
|
, tf :: String -> String -> String
|
|
, strt :: String
|
|
, final :: Set String
|
|
}
|
|
|
|
instance Show DFA where
|
|
show x = show states ++
|
|
show sigma ++
|
|
"tf" ++ strt ++
|
|
show final
|
|
|
|
tf1 "q0" "1" = "q1"
|
|
tf1 "q1" "0" = "q0"
|
|
|
|
a = fromList [1,1,2,3]
|
|
dfa = DFA (fromList ["q0", "q1", "q2", "q3"])
|
|
(fromList ["0", "1"])
|
|
tf1
|
|
"q0"
|
|
(fromList ["q3"])
|