هل الاستمرارية أحادية؟
-
21-08-2019 - |
سؤال
هل يمكن القول أن الاستمرارات هي موناد؟هل هي مجموعة فرعية من المونادات أم أنها مجرد وسيلة لتنفيذ المونادات؟
يحرر: أو ربما أخطأت و مناد هو مفهوم أكثر تجريدية من استمرار؟(لذا فأنا أقارن التفاح بالبرتقال هنا)
المحلول
وباختصار، منذ "مأزق" من الكائن الدقيق الاحادي الخلية يأخذ استمرار فعالية (أ امدا من 'بقية حساب') كحجة، الكائنات الدقيقة الاحاديه الخلية هي استمرارا في هذا الاتجاه. على الجانب الآخر، على غرار استمرار عابرة يمكن تنفيذها على نحو فعال بلغة غير CPS-استخدام السكريات في بناء الجملة monadic، كما اقترح عدد من الروابط متفرقات أدناه.
ومن 'كل شيء عن الكائنات الدقيقة الاحاديه الخلية "البرنامج التعليمي في هاسكل:
https://www.haskell.org/haskellwiki/All_About_Monads#The_Continuation_monad
وهناك F # استمرار الكائن الدقيق الاحادي الخلية، وتستخدم لتنفيذ "كسر" و "تواصل" عن على غرار الحلقات
http://cs.hubfs.net/forums/thread/9311.aspx
ومثال على تطبيق الكائن الدقيق الاحادي الخلية استمرار وجود مشكلة في F #:
http://lorgonblog.spaces.live.com/blog /cns!701679AD17B6D310!256.entry
نصائح أخرى
وهي استمرارا الكائنات الدقيقة الاحاديه الخلية ليس فقط، لكنها نوع من الكائن الدقيق الاحادي الخلية عالمي، بمعنى أنه إذا كان لديك استمرارا والدولة، يمكنك محاكاة أي الكائن الدقيق الاحادي الخلية وظيفية. هذه النتيجة مثيرة للإعجاب ولكن التقنية العالية تأتي من العقل مثير للإعجاب والتقني للغاية من أندريه Filinski ، الذي كتب في عام 1994 أو نحو ذلك:
<اقتباس فقرة>ونظهر أن أي الكائن الدقيق الاحادي الخلية التي الوحدة وتمديد العمليات هي التعبير عنه كما الوظيفية البحتة يمكن أن تكون جزءا لا يتجزأ بلغة دعوة من القيمة مع "استمرارا composable".
اقتباس فقرة>يمكن أن يكونوا كذلك، على الرغم من أنهم لا يحتاجون إلى ذلك.سأعكس سؤالك قليلاً وأقول بدلاً من ذلك أن المونادات هي طريقة لتنفيذ الاستمرارية.ولكن يمكنك تنفيذ الاستمرارية بعدة طرق - يمكنك عمل نسخة طبق الأصل متواضعة ولكن مقيدة من CPS في C# دون بذل الكثير من الجهد، على سبيل المثال.القي نظرة على استمرار موناد من موقع هاسكل لعلاج شامل للغاية.
ومقالة لطيفة للغاية حول هذا الموضوع: http://blog.sigfpe.com/2008/12/ أم لجميع monads.html
واستمرارا هي وظيفة معينة في البرنامج. الكائنات الدقيقة الاحاديه الخلية هي نوع الصانعين.
وهناك نوع منشئ Cont<T>
لاتخاذ استمرارا نوع T
لن يكون الكائن الدقيق الاحادي الخلية.
ولكن، Cont<Cont<T>>
هو الكائن الدقيق الاحادي الخلية، وهذا ما يسمى عادة "الكائن الدقيق الاحادي الخلية استمرار".
(وجود callcc بلغة ما يعادل القدرة على تحويل من Cont<Cont<T>>
إلى T
).