۲۱ - ۳این شما و این Reader

همونطور که دیدیم، توابعْ نمونه‌های ‏‎Fucntor‎‏، ‏‎Applicative‎‏، و ‏‎Monad‎‏ دارن. معمولاً ‏‎Reader‎‏ به نمونه ِ ‏‎Monad‎‏ ِ توابع اشاره داره.

یکی از دلایلی که از ترکیب توابع استفاده می‌کنیم اینه که میشه باهاش دو تابع رو، بدون اهمیت به آرگومانی که بالاخره از راه میرسه، ترکیب کنیم؛ ‏‎Functor‎‏ ِ توابع همون ترکیبِ توابع ِه. با ‏‎Functor‎‏ ِ توابع، میشه یه تابعِ معمولی رو از روی یه تابعِ دیگه نگاشت بدیم تا به یه تابعِ جدید برسیم. با نمونه‌های ‏‎Applicative‎‏ و ‏‎Monad‎‏ ِ توابع میشه یه تابع که منتظرِ‌ یه آرگومانِ ‏‎a‎‏ هست رو از روی یه تابعِ دیگه که اون هم منتظرِ یه ‏‎a‎‏ هست نگاشت بدیم.

اسمی که براش تعریف کردیم، کَمی از ماهیت‌ش هم میگه: خوندن* ِ یه آرگومان از محیط به داخلِ توابع. بعداً که موند ترانسفورمر ِ ‏‎ReaderT‎‏ رو درست کنیم، به واضح‌شدنِ اون مفاهیم هم کمک می‌کنه.

*

م. لغتِ reader هم به معنای "خواننده"ست.

جذابه، نه؟ فعلاً یه کم آروم بگیریم و اول جزئیات بیشتری از طرز کار ‏‎Reader‎‏ ببینیم.