۱۷ - ۱اپلیکتیو
در فصلهای قبل، دوتا از جبرهای رایج رو دیدیم که به عنوان تایپکلاس ازشون استفاده میشه. Monoid
برای چسبوندن دو مقدار از یه تایپ به همدیگه کاربرد داره. Functor
هم برای اعمال تابع از روی یه ساختاری که کاری باهاش نداریم استفاده میشه. عملیات ِ اصلیِ Monoid
، یعنی mappend
، ساختارها رو تو هم لِه میکنه – وقتی دوتا لیست رو با هم mappend
میکنیم، میشن یک لیست، پس ساختارهاشون با هم تلفیق میشن. از طرف دیگه، عملیات ِ اصلی Functor
، یعنی همون fmap
، یه تابع رو به یه مقدار که داخل یه ساختار قرار گرفته اعمال میکنه، بدون اینکه دستی به اون ساختار بزنه.
حالا میرسیم به Applicative
. اپلیکتیوها فانکتورهای مانویدی اند. با تایپکلاسِ Applicative
میشه تابع رو از روی ساختار اعمال کرد (مثل Functor
). با این تفاوت که با Applicative
، اون تابعی که میخوایم اعمال کنیم، خودش داخل یه ساختاره. به این خاطر که هم تابع و هم مقداری که داره بهش اعمال میشه هردوشون ساختار دارن، پس باید اون ساختارها رو تو هم لِه کنیم. در نتیجه، Applicative
هم با مانوید سروکار داره و هم با فانکتور. و خیلی هم قویه.
در این فصل:
تایپکلاس Applicative
و عملیاتهای اصلیش رو تعریف و بررسی میکنیم؛
نشون میدیم که چرا اپلیکتیوها فانکتورهای مانویدی هستن؛
از قانونها و نمونهها گپ میزنیم؛
یه عالَم لیفت میکنیم؛
یه کم با Validation
آشنا میشیم.