-- mancano i commenti parse :: [Char] -> Bool parse string = q1 string q1 ('a':cs) = q2 cs || q4 cs q1 _ = False q2 ('b':cs) = q3 cs q2 _ = False q3 "b" = True q3 ('c':cs) = q3 cs q3 _ = False q4 ('a':[]) = True q4 _ = False