2

我需要一些帮助来设计一元数据类型,我似乎很难理解这个想法,但我非常清楚我想要什么。只有类型检查器似乎需要一些说服力。

我想要的是一些Primitive可以是单子的数据类型。其功能基本上是绘制原语,我希望能够将它们组合起来,并且组合也是原语,就像Parser库中的类型一样parsec。但是实际的绘图必须用一个IO单子来完成。

顺便说一句,我也有一堂Drawable a这样的课:

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

我当然希望每个 Primitive 都是可绘制的。感谢您的任何意见。

4

1 回答 1

5

我不明白你为什么认为这应该是一个单子。它有什么单子的?

您应该首先设计您想要的 API,然后逐步考虑如何抽象它。

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

于 2011-02-18T19:46:53.400 回答