سؤال

سأحتاج إلى بعض المساعدة لتصميم نوع بيانات أحادي ، يبدو أنني أواجه مشكلة في لف رأسي حول الفكرة ، لكنني بالتأكيد أعرف ما أريد.يبدو أن مدقق النوع فقط يتطلب بعض الإقناع في هذا الشأن.

ما أريده هو بعض أنواع البيانات Primitive يمكن أن يكون موناد.وظائف ذلك هي في الأساس رسم الأوليات ، وأريد أن أكون قادرا على الجمع بينها والمجموعات كونها الأوليات كذلك ، مثل الكثير من Parser اكتب في المكتبة parsec.ولكن الرسم الفعلي يجب أن يتم مع IO موناد.

بالمناسبة ، لدي أيضا فئة Drawable a مثل هذا:

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

وأريد أن تكون كل بدائية بالطبع قابلة للرسم.أنا ممتن لأي مدخلات.

هل كانت مفيدة؟

المحلول

لا أفهم لماذا تعتقد أن هذا يجب أن يكون موناد.ما هو موناديك حول هذا الموضوع?

يجب عليك تصميم واجهة برمجة التطبيقات التي تريدها أولا ، والتفكير تدريجيا في كيفية تجريدها.

بالمناسبة ، مكتبة الرسوم البيانية برنت لديها أبي التركيبية لطيفة جدا التي يمكن أن توفر بعض الأفكار الجيدة: http://byorgey.wordpress.com/2008/04/30/new-haskell-diagrams-library/

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top