Convert from table to function: 

> # Convert a DFA where the transition function is a "table" to
# a DFA where the transition function is a function (older version)
#
# NOTE: If we use functions, it may look nice and works well for
#       DFAs. But it posts several problems for NFAs
  
convertDFA:=proc(a_dfa,listOrSet)
local i,dfa,delta,numberOfTransition;
dfa:=[op(a_dfa)];
if member(listOrSet,{"list","List","LIST"}) then
 dfa[1]:=[op(dfa[1])];
 dfa[2]:=[op(dfa[2])];
 dfa[5]:=[op(dfa[5])];
elif member(listOrSet,{"set","Set","SET"}) then
 dfa[1]:={op(dfa[1])};
 dfa[2]:={op(dfa[2])};
 dfa[5]:={op(dfa[5])};
fi;
numberOfTransition:=nops(op(dfa[3])):
if (numberOfTransition=0) then
 RETURN([dfa[1],dfa[2],op(delta),dfa[4],dfa[5]]):
fi:
for i from 1 to numberOfTransition do
 delta(op(1,op(i,op(dfa[3])))):=op(2,op(i,op(dfa[3]))):
od:
RETURN([dfa[1],dfa[2],op(delta),dfa[4],dfa[5]]):
end:
 

>