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