Конечный автомат в Хаскеле
Что такое хороший способ представить конечный автомат в Haskell? Как будет выглядеть тип данных?
В нашем колледже автоматы были определены как 5-кортеж
(Q, X, delta, q_0, F)
где Q - множество состояний автомата, X - алфавит (является ли эта часть даже обязательной), delta - функция перехода, принимающая 2-кортеж из (Q, X) и возвращающая состояния / -ы (в недетерминированной версии) ) и F - множество принимающих / конечных состояний.
Самое главное, я не уверен, какой типdelta
должен иметь...