كيف يمكنني إنشاء اثنين المتبادلة منتج/المستهلكين مع الحالة الداخلية في هاسكل ؟

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

سؤال

لدي العميل الذي يأخذ في الدول وإرجاع إجراءات الحفاظ على التمثيل الداخلي فائدة الدولة/العمل أزواج.لقد حصلت أيضا بيئة يأخذ في الإجراءات وإرجاع الدولة/مكافأة أزواج.

أنا بحاجة إلى أن تكون قادرة على ضبط عامل مع بداية الدولة ثم يذهب باستمرار من وكيل -(العمل)-> البيئة(الدولة مكافأة)-> الوكيل -(العمل)->...ومع ذلك ، فإن الدول الداخلية (التي تحتاج إلى تحديث كل التكرار) تحتاج إلى البقاء الخاص (وهذا هو ، في غضون العميل أو البيئة).هذا يعني أنني لا أستطيع ببساطة الاتصال البيئة بوصفها وظيفة داخل العميل باستخدام الدولة و العمل الحجج.

أنا الى حد ما هاسكل noobie, لذلك أنا لست متأكدا إذا كان هذا ممكنا.

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

المحلول

سؤالين:

  • إذا كان العميل يجب أن تستخدم الدولة لحساب العمل ، ثم كيف تتوقع أن تبقي تمثيل الدول سر من العميل ؟

  • إذا كانت البيئة تتوقع أن تنتج دولة (مكافأة) نظرا العمل ، كيف تتوقع أن تبقي تمثيل الدول سر من البيئة ؟

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

فإنه يساعد على توضيح السؤال من قبل

  • توفير نوع توقيعات وظائف الفائدة

  • التعرف على المهام التي تريد تمثيل الدول لا أن تتعرض لها.

P. S.هذه الصعوبات هي تماما فصله من هاسكل و سيكون في هذه القضية بغض النظر عن اختيار تنفيذ اللغة (شريطة أن تنفيذ يدعم اللغة بعض شكل من أشكال الخصوصية).

نصائح أخرى

وسوف تحتاج إلى أن تقرر أي من وكيل والبيئة يجلس "على رأس" - دعونا نفترض لبقية هذه الإجابة أنه من البيئة على رأس الدعوة إلى وكيل منذ أن يجعل عموما اكثر احساسا

ويمكنك الاحتفاظ تمثيل البيانات من وكيل الخاص باستخدام نظام وحدة - مجرد تصدير اسم نوع البيانات دون أي وجه من الداخلية لها.

module Agent (AgentState, other_stuff) where

وكما opposd إلى

module Agent (AgentState(..), other_stuff) where

إذا يحتاج وكيل أيضا لتمريرها الدولة للبيئة (على الرغم من أنني لا أرى أي سبب هذا سيكون من الضروري على البيئة يمكن أن تتبع لنفسها)، ثم جعل عامل يشتغل متعدد الأشكال بحيث أنها يمكن أن تكون مرت <م> أي نوع الدولة - ثم البيئة يمكن أن تمر بكل ما يحب في تمثيلها دون التعرض

وكما ينبغي أن يكون من الممكن استخدام الكائنات الدقيقة الاحاديه الخلية الدولة لتحقيق المزيد من السيطرة على ما يحدث للدولة، على سبيل المثال منع البيئة من تكرار حالة وكيل يعطيها واستدعاء وكيل مرارا وتكرارا مع تلك الدولة نفسها، ولكن إذا كنت ' إعادة جديدة لهاسكل هو على الأرجح أفضل للحصول على القليل من الخبرة دون الكائنات الدقيقة الاحاديه الخلية الأولى. (غير أن الكائنات الدقيقة الاحاديه الخلية هي مخيفة أو أي شيء خاص، لكنها اخفاء التفاصيل منك ذلك فمن الصعب معرفة ما يجري.)

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