Вопрос

Мне понадобится помощь в разработке монадического типа данных. Кажется, мне трудно осознать эту идею, но я вполне точно знаю, чего хочу.Только средство проверки типов, кажется, требует некоторого убеждения в этом вопросе.

Мне нужен какой-то тип данных Primitive это может быть монада.Его функции в основном представляют собой примитивы рисования, и я хочу иметь возможность комбинировать их, а также комбинации, являющиеся примитивами, во многом подобно Parser набери в библиотеке parsec.Но настоящий рисунок должен быть выполнен с помощью IO монада.

Кстати, у меня тоже есть класс Drawable a так:

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

И я, конечно же, хочу, чтобы каждый примитив можно было рисовать.Я благодарен за любой вклад.

Это было полезно?

Решение

Я не понимаю, почему вы думаете, что это должна быть монада.Что в этом монадического?

Сначала вам следует спроектировать желаемый API и постепенно думать о том, как его абстрагировать.

Кстати, библиотека диаграмм Брента имеет очень хороший композиционный API, который может дать несколько хороших идей: http://byorgey.wordpress.com/2008/04/30/new-haskell-diagrams-library/

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top