چرا این کتاب
اگه تازه میخواین برنامهنویسی رو شروع کنین، هسکل گزینهی خیلی خوبیه. هسکل یه زبانِ برنامهنویسیِ تابعی* ِه، و کاربردِ عمومی داره. هرجایی که بشه با نوشتنِ برنامهای مسئلهای رو حل کرد، میشه از هسکل هم استفاده کرد (به غیر از بعضی برنامههای جاسازیشدهی بخصوص).
برنامهنویسیِ تابعی یه سبکی از برنامهنویسیه که ساختارِ اصلیِ برنامهها متشکل از تابعها و فراخوانِ اونهاست (بجای یه سری از دستورات که کامپیوتر اجرا کنه). الان ماهیتش خیلی مهم نیست؛ هسکل کاملاً سبکِ تابعی رو در بَر داره، و در طولِ کتاب واضح و روشن میشه.
اگر هم برنامهنویس هستین، ممکنه دلایلِ متنوعی برای تقویتِ مهارتهاتون از طریقِ یادگیریِ هسکل داشته باشین: از عشق به برنامهنویسیِ تابعیِ خالص گرفته تا انگیزه برای کدنویسیِ تابعی در اِسکالا، تا پیدا کردنِ راهی به سمتِ پیوراسکریپت یا اِدریس. زبانهایی مثلِ جاوا دارن خوردهخورده بعضی مفاهیمِ تابعی رو به کار میگیرن، اما اصلاً به عنوانِ یه زبانِ تابعی طراحی نشدن. از اونجا که هسکل یه زبانِ تابعیِ خالصه، محیطِ "حاصلخیزی" برای یادگیری و تسلط به برنامهنویسیِ تابعی به حساب میاد. مهم نیست توی چه زبانی کد مینویسین، نحوهی فکر کردن و حلِ مسئله که با برنامهنویسیِ تابعی یاد میگیرین خیلی مفیده. ما از بعضی خوانندهها شنیدیم که این کتاب برای کارهاشون در زبانهای متنوعی مثلِ اسکالا، افشارپ، فرِگه، سوئیفت، پیوراسکریپت، اِدریس، و اِلم مفید بوده.
اولِ کار، ممکنه نوشتنِ هسکل به نظر سختتر بیاد، نه فقط به خاطرِ گرامر و مفاهیمی که با اکثرِ زبانها فرق داره، بلکه به خاطرِ امکاناتی مثل تایپدار بودنِ قویش که یک سری دیسیپلین در نحوهی کدنویسی رو اجبار میکنه. اما این عیب نیست، مزیت ِه. هر چقدر هم که دوست نداشته باشیم اقرار کنیم، ما آدمها تمرکز و حافظهی کوتاه-مدتِ محدودی داریم. نمیشه همهی فرادادههای مرتبط با برنامههامون رو توی ذهنمون نگه داریم. اگه حافظهی محدودِمون رو روی کارهایی که کامپیوتر میتونه برامون انجام بده صرف کنیم، اصلاً سازنده عمل نکردیم. کامپیوترها در حفظِ دادهها خیلی خوب عمل میکنن، بخصوص در حفظِ فرادادههایی مثلِ تایپها.
دلیلِ استفادهی ما از هسکل، نخبه بودن نیست – دلیلِ استفاده از ابزاری مثل هسکل اینه که کمکمون میکنن. چنین ابزارهای خوبی مثل هسکل، باعث میشن سریعتر کار کنیم، اشتباهاتِ کمتری داشته باشیم، و با خوندنِ کُدِمون، هدفِ کد رو بهتر و کاملتر درک کنیم.
هسکل (در بلند مدت) آسونتره، و باعث میشه کارِ بهتری انجام بدیم. این فایدهشه. شروع با هسکل یه کم زحمت داره، اما با کمی حوصله، و انگیزه برای حلِ تمرینها، راحت میگذره.