۲۱ - ۱ریدِر

تایپکلاس‌هایی که در دو فصل قبل روشون تمرکز کردیم ممکنه هنوز براتون عجیب یا سخت باشن. سه فصلِ در پیشِ رو هم روی الگوهایی متمرکزاند که هنوز ممکنه براتون نامأنوس باشن. ‏‎Foldable‎‏، ‏‎Traversable‎‏، ‏‎Reader‎‏، ‏‎State‎‏، و ترکیب‌گرهای پارسِر اساساً برای درک و استفاده از هسکل واجب نیستن. برای معرفیِ اونها در این نقطه از کتاب دلایلی داریم، ولی تا یه مدتی اون دلایل براتون واضح نمیشن. اگه با بار اول خوندن کامل درک نکردین، هیچ ایرادی نداره. با دقت بخونین، تمام تلاش‌تون رو برای حل تمرین‌ها به کار بگیرین، هر وقت حس کردین آمادگی دارین یه بار دیگه هم بخونین.

در ساخت برنامه‌ها، گاهی اوقات یه سری اطلاعاتی که در کل برنامه کاربرد دارن و یا به صورت متناوب هِی لازم میشن رو باید به چیزهای مختلف پاس داد. اگه بخوایم خیلی ساده همه‌ی اون اطلاعات رو به عنوان آرگومان به هر تابعی که لازم داره بدیم، اون موقع تقریباً تایپِ همه‌ی تابع‌ها شامل اون اطلاعات هم میشن و ممکنه کلاً خوندن و نگهداری کد رو سخت کنه. برای چنین مواردی میشه از ‏‎Reader‎‏ استفاده کرد.

در این فصل:

  • نمونه‌های ‏‎Functor‎‏، ‏‎Applicative‎‏، و ‏‎Monad‎‏ رو برای توابع بررسی می‌کنیم؛

  • نیوتایپ ِ ‏‎ریدِر‎‏ رو یاد می‌گیریم؛

  • چند مثال از کاربردِ ‏‎Reader‎‏ هم می‌بینیم.