هل من الأفضل استخدام ولاية موناد، أو لتمرير الدولة بشكل متكرر؟

StackOverflow https://stackoverflow.com/questions/1456479

  •  12-09-2019
  •  | 
  •  

سؤال

أنا فقط أتعلم Haskell، ومحاولة معرفة الطريقة الأكثر اعتصارا لتنفيذ خط خوارزمية البصر.

يستخدم الرمز التجريبي الذي وجدته ولاية موناد، لكن يبدو أبسط بالنسبة لي (أنا مجرد مبتدئ) لتمرير الحالة بشكل متكرر. ما أنا في عداد المفقودين هنا؟ هل هناك مشاكل في الأداء؟

العثور على رمز في: http://www.finalcog.com/bresenham-algorithm-idiomatic-haskell.

شكرا،

كريس.

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

المحلول

يمكن أن تصبح مطلة بعض الشيء لتمرير الدولة في كل مكان. أيضا، فإن الدولة موناد معروفة جيدا في معظم مبردون Haskell حتى يعرفون ما تقوم به. إذا قمت بتدفئة تدفيك، خارج Monad، فقد يكون الأمر صعبا في تمييز الكود الخاص بك.

أجد الدولة موناد أنيق لتغيير تغييرات الدولة، من الواضح أن جزءا من التعليمات البرمجية الخاصة بك هو أمر ضرزي (أي يغير أو يعتمد على الحالة) WRT ما تبقى من الأشياء النقية.

نصائح أخرى

بالنسبة للبرامج الأكبر، من الأفضل إخفاء الدولة تمر بالسباكة في مناد. هناك خطر أقل خطأ.

ميزة لاستخدام موناد لتمرير الدولة بدلا من تمرير الدولة صراحة، هل هناك العديد من أجهزة منفذات مفيدة محددة للمونادس التي يمكنك استخدامها.

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