ما هو موناد؟
موناد هو monoid في فئة endofunctors ...؟
... لنحاول مرة أخرى:
الموناد هو تجريد يستخدم في البرمجة الوظيفية للتعامل مع الحسابات بطريقة متسقة. إنه نمط تصميم يسمح بسلسلة العمليات مع تغليف الآثار الجانبية ، مثل تغييرات الحالة ، I/O ، أو الأخطاء ، بطريقة يتم التحكم فيها.
يمكن التفكير في الموناد كوسيلة لالتفاف القيم وتطبيق الوظائف عليها ، مما يضمن إجراء الحسابات في بيئة يمكن التنبؤ بها والتحكم فيها.
فهمي الشخصي هو: الموناد هي بنية بيانات مع
هذا يتيح التسلسل وتكوين العمليات بطريقة تحافظ على عدم القدرة على التثبت والنقاء الوظيفي-نهج "عكسي" في الفصل ، حيث لا يمكن تعديل الحالة في مكانها ، ولكن يتم تطبيق التحولات وظيفيًا لإنتاج مثيلات جديدة.
هذا "التماثل العكسي" يسلط الضوء على التباين:
تعدل الفصول حالتها الداخلية ، والحفاظ على قابلية التكيف والتفاعل المباشر من خلال الطرق الداخلية. يتفاعلون معظم الوقت مع حالة عالمية
تصل monads إلى نتائج مماثلة إلى فئة ، ولكن من خلال لف القيم ورسم خرائط التحولات الخارجية غير القابلة للتغيير ، ليس لديهم آثار جانبية: لا توجد حالة عالمية
مثال:
مثال مشروع في بيثون:
https://github.com/blackopsrepl/py-monad-task-manager Budaper
بدلاً من تعديل حالة قائمة المهام مباشرة ، نستخدم وظيفة Return_ لالتفاف الحالة الأولية في حاوية أحادية ، ووظيفة الربط لتطبيق التحولات على الحالة بطريقة يمكن التنبؤ بها. في كل مرة يتم فيها إجراء عملية (مثل إضافة المهام أو تحريرها أو حذفها) ، فإنها تُرجع مثيلًا جديدًا للدولة ، وضمان عدم التكلفة والتكامل.
وظائف المفاتيح:
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3