Correction
Carl McTague
mctague@santafe.edu
Wed, 31 Jul 2002 16:48:07 -0600
I'm sorry, there was a subtle error in the definition of the function
finAuDeterminize in my posting, which caused genuine performance
trouble! Replace sort by (sort.nub). That is:
finAuDeterminize :: (Ord l) => FinAu l -> FinAu [l]
finAuDeterminize startStates = [f startStates]
where f :: (Ord l) => [FaState l] -> FaState [l]
f states = FaState label' acceptQ' trans'
where label' = (sort.nub) (map label states)
acceptQ' = or (map acceptQ states)
trans' = map (singleton.f.concat) (transpose (map trans states))
singleton a = [a]
Carl