কে সিসিসি করা যাক । আসুন তে একটি পণ্য দ্বিখণ্ডক হয়ে উঠুন । বিড়ালটি সিসিসি হিসাবে , আমরা তরকারী করতে পারি :( × ) সি ( × )
ফ্যান্টেক্টর বিভাগ সাধারণ কাঠামো থাকে। একটি monoid একটি একসংখ্যা হয় । আমরা সসীম পণ্যগুলিকে তে একঘেয়েমি কাঠামো হিসাবে বিবেচনা করি ।
অতএব মনোয়েডাল কাঠামো সংরক্ষণ করে, সুতরাং এটি একটি মনয়েডকে একটি মনোয়েড এবং কমোনয়েডে কমোনয়েডে পরিবহণ করে। যেমন, এটা একটি অবাধ monoid transports থেকে একসংখ্যা (- সংজ্ঞা এ বর্ণন একটি monoid হতে হবে)। একইভাবে এটি transports তির্যক comonoid করার Coreader comonad।
এখন, সংক্ষিপ্ততার জন্য, আমি লেখকের নির্মাণকাজটি প্রকাশ করেছি।
শুরু করুন। প্রকৃতপক্ষে , তাদের সহজভাবে হাস্কেলের আলাদা আলাদা নাম রয়েছে। আমাদের কাছে হাস্কেল :
লেখক একটি ফান্টেক্টর, তাই এটি অবশ্যই মরপেন্ডগুলি যেমন ম্যাপেন্ড এবং মেম্পটির মানচিত্র তৈরি করতে পারে । আমি এটি নীচে হিসাবে লিখছি, যদিও এটি হাস্কেলের ক্ষেত্রে অবৈধ:
একটি প্রাকৃতিক রূপান্তর, । কারি (By বার) এর বৈশিষ্ট্য অনুসারে এটি একটি ফাংশন যা ওব (সি) এ একটি takes নেয় এবং সি-তে একটি আকার দেয় :
অনানুষ্ঠানিকভাবে, ধরনের অঙ্কের উপাদান এবং পাম্প অক্ষত। হাস্কেলের লেখকের ঠিক এটিই। একটি প্রতিবন্ধকতা হ'ল মোনাড আমাদের দরকারW একটি ⟨ ডব্লিউ R আমি টি ই দ W , μ , η ⟩
অর্থাত্ অসঙ্গতি। তবে এই ফান্টেক্টরগুলি isomorphic: fin সীমাবদ্ধ পণ্যগুলির জন্য সাধারণ সহযোগীর দ্বারা যা প্রাকৃতিক আইসোমরফিজম । তারপরে আমরা মাধ্যমে সংজ্ঞায়িত । আমি মাধ্যমে নির্মাণকে বাদ ।≅ λ a । w × ( w × a ) = W r i t e r w ∘ W r i t e r w μ W r i t e r m a p p eη m e m p t y
লেখক, একজন functor হচ্ছে, বিনিময় ডায়াগ্রামে, অর্থাত্ সংরক্ষণ monoid equalities, অপরিবর্তিত, তাই আমরা আছে তাদের জন্য মঞ্জুর প্রমাণিত equalities, জন্য = একটি monoid মধ্যে = একটি একসংখ্যা । শেষ.( সি ⇒ সি ) সি
রিডার এবং কাউটারিটরের কী হবে ? পাঠক কোরেডারকে সমাহিত করেছেন, যেমন কোরেডারের সংজ্ঞায় ব্যাখ্যা করা হয়েছে, উপরের লিঙ্কটি দেখুন। একইভাবে, কৌরাইটার রাইটারকে অ্যাডজাস্ট করে। আমি কাউরিটারের সংজ্ঞা পাইনি, সুতরাং আমি এটিকে টেবিলে দেখানো উপমা দিয়ে তৈরি করেছি:
{- base, Hackage.category-extras -}
import Control.Comonad
import Data.Monoid
data Cowriter w a = Cowriter (w -> a)
instance Functor (Cowriter w) where
fmap f (Cowriter g) = Cowriter (f . g)
instance Monoid w => Copointed (Cowriter w) where
extract (Cowriter g) = g mempty
instance Monoid w => Comonad (Cowriter w) where
duplicate (Cowriter g) = Cowriter
(\w' -> Cowriter (\w -> g (w `mappend` w')))
নীচে সেগুলি (সহ) মনাদের সহজ সংজ্ঞা দেওয়া আছে। fr_ob F বস্তুগুলিতে একটি ফান্টর এফ এর ম্যাপিংকে বোঝায়, fr_mor F মরফিজমে Fantor F এর ম্যাপিংকে বোঝায়। একটা monoid অবজেক্ট মধ্যে ।সি
- লেখক
- পাঠক
- Coreader
- Cowriter
প্রশ্নটি হ'ল সংযোজন মন্থড নয়, ফান্টেক্টরের সাথে সম্পর্কিত। "পাঠক একটি মনাদ" এবং "লেখক একটি মনাদ" "" সহকর্মী একটি কমোনাদ "" "সংঘর্ষটি" কোরেডার একজন কমোনাদ " সমন্বয়টি কীভাবে বোঝায় তা আমি দেখতে পাচ্ছি না ।
লক্ষ্য। আমি আরও প্রসঙ্গ সরবরাহ করার জন্য সংগ্রাম করছি। এটি কিছু কাজ প্রয়োজন। বিশেষত, আপনার যদি বিশুদ্ধ বিশুদ্ধতার প্রয়োজন হয় এবং প্রোগ্রামারদের জন্য সেগুলি (কো) মনড চালু করা হয়েছিল। টানতে থাকুন! ;)