29.01.2015 Views

ficha resolvida - Universidade do Minho

ficha resolvida - Universidade do Minho

ficha resolvida - Universidade do Minho

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Tal como a função de aceitação de um autómato finito determinista se escreve como a<br />

função standard de recursividade sobre listas, nomeadamente a função —foldl—, a versão<br />

monádica/reactiva escreve-se agora na sua definição monádica, i.e, —foldM—.<br />

Solução<br />

dfawalk :: Monad m => (st -> sy -> m st) -> st -> [sy] -> m st<br />

dfawalk delta st sys = foldM delta st sys<br />

A função de aceitação para autómatos determinitas reactivo é também a versão monádica<br />

da função de aceitação para autómatos deterministas.<br />

Solução<br />

dfaaccept :: (Monad m, Eq st) => Dfa m st sy -> [sy] -> m Bool<br />

dfaaccept (Dfa _ _ s z delta) sent = <strong>do</strong> st

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!