۱۷ - ۱اپلیکتیو

در فصل‌های قبل، دوتا از جبرهای رایج رو دیدیم که به عنوان تایپکلاس ازشون استفاده میشه. ‏‎Monoid‎‏ برای چسبوندن دو مقدار از یه تایپ به همدیگه کاربرد داره. ‏‎Functor‎‏ هم برای اعمال تابع از روی یه ساختاری که کاری باهاش نداریم استفاده میشه. عملیات ِ اصلیِ ‏‎Monoid‎‏، یعنی ‏‎mappend‎‏، ساختارها رو تو هم لِه می‌کنه – وقتی دوتا لیست رو با هم ‏‎mappend‎‏ می‌کنیم، میشن یک لیست، پس ساختارهاشون با هم تلفیق میشن. از طرف دیگه، عملیات ِ اصلی ‏‎Functor‎‏، یعنی همون ‏‎fmap‎‏، یه تابع رو به یه مقدار که داخل یه ساختار قرار گرفته اعمال می‌کنه، بدون اینکه دستی به اون ساختار بزنه.

حالا میرسیم به ‏‎Applicative‎‏. اپلیکتیوها فانکتورهای مانویدی اند. با تایپکلاسِ ‏‎Applicative‎‏ میشه تابع رو از روی ساختار اعمال کرد (مثل ‏‎Functor‎‏). با این تفاوت که با ‏‎Applicative‎‏، اون تابعی که می‌خوایم اعمال کنیم، خودش داخل یه ساختاره. به این خاطر که هم تابع و هم مقداری که داره بهش اعمال میشه هردوشون ساختار دارن، پس باید اون ساختارها رو تو هم لِه کنیم. در نتیجه، ‏‎Applicative‎‏ هم با مانوید سروکار داره و هم با فانکتور. و خیلی هم قوی‌ه.

در این فصل:

  • تایپکلاس ‏‎Applicative‎‏ و عملیات‌های اصلی‌ش رو تعریف و بررسی می‌کنیم؛

  • نشون میدیم که چرا اپلیکتیوها فانکتورهای مانویدی هستن؛

  • از قانون‌ها و نمونه‌ها گپ می‌زنیم؛

  • یه عالَم لیفت می‌کنیم؛

  • یه کم با ‏‎Validation‎‏ آشنا میشیم.