Pergunta

Eu precisaria de ajuda para projetar um tipo de dados monádico. Parece que tenho dificuldade em entender a ideia, mas definitivamente sei o que quero.Apenas o verificador de tipo parece exigir alguma persuasão nesse assunto.

O que eu quero é algum tipo de dados Primitive isso pode ser uma mônada.Funções disso são basicamente desenhar primitivas, e eu quero ser capaz de combiná-las e as combinações sendo primitivas também, assim como o Parser digite na biblioteca parsec.Mas o desenho propriamente dito tem que ser feito com um IO mônada.

Aliás, eu também tenho uma aula Drawable a assim:

class Drawable a where
    draw :: (MonadIO m) => Pos -> a -> m ()

E eu quero que todo Primitivo, é claro, seja desenhável.Estou grato por qualquer contribuição.

Foi útil?

Solução

Não entendo por que você acha que isso deveria ser uma mônada.O que há de monádico nisso?

Você deve projetar a API desejada primeiro e pensar gradativamente em como abstraí-la.

Aliás, a biblioteca de diagramas de Brent possui uma API de composição muito boa que pode fornecer algumas boas ideias: http://byorgey.wordpress.com/2008/04/30/new-haskell-diagrams-library/

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top