设计monadic类型

时间:2011-02-18 19:29:07

标签: haskell monads combinators

我需要一些帮助来设计一个monadic数据类型,我似乎无法绕过这个想法,但我肯定知道我想要什么。只有类型检查器似乎需要一些说服力。

我想要的是一些可以是monad的数据类型Primitive。它的功能基本上是绘制图元,我希望能够将它们和组合组合成基元,就像库Parser中的parsec类型一样。但实际绘图必须使用IO monad。

顺便说一句,我还有一个类Drawable a,如下所示:

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

我希望每个原始人都可以画画。感谢任何意见。

1 个答案:

答案 0 :(得分:5)

我不明白为什么你认为这应该是一个单子。什么是monadic呢?

您应首先设计所需的API,并逐步考虑如何抽象它。

顺便提一下,Brent的图表库有一个非常好的组合API,可以提供一些好主意:http://byorgey.wordpress.com/2008/04/30/new-haskell-diagrams-library/