۲۱ - ۳این شما و این Reader
همونطور که دیدیم، توابعْ نمونههای Fucntor
، Applicative
، و Monad
دارن. معمولاً Reader
به نمونه ِ Monad
ِ توابع اشاره داره.
یکی از دلایلی که از ترکیب توابع استفاده میکنیم اینه که میشه باهاش دو تابع رو، بدون اهمیت به آرگومانی که بالاخره از راه میرسه، ترکیب کنیم؛ Functor
ِ توابع همون ترکیبِ توابع ِه. با Functor
ِ توابع، میشه یه تابعِ معمولی رو از روی یه تابعِ دیگه نگاشت بدیم تا به یه تابعِ جدید برسیم. با نمونههای Applicative
و Monad
ِ توابع میشه یه تابع که منتظرِ یه آرگومانِ a
هست رو از روی یه تابعِ دیگه که اون هم منتظرِ یه a
هست نگاشت بدیم.
اسمی که براش تعریف کردیم، کَمی از ماهیتش هم میگه: خوندن* ِ یه آرگومان از محیط به داخلِ توابع. بعداً که موند ترانسفورمر ِ ReaderT
رو درست کنیم، به واضحشدنِ اون مفاهیم هم کمک میکنه.
م. لغتِ reader هم به معنای "خواننده"ست.
جذابه، نه؟ فعلاً یه کم آروم بگیریم و اول جزئیات بیشتری از طرز کار Reader
ببینیم.