Learn You a Haskell یک خودآموز برای کسانی که تجربهٔ برنامهنویسی با زبانهایی مانند C++ ،C ،Java و Python دارند اما در عین حال با یک زبان فانکشنال مانند OCaml ،ML و به خصوص Haskell هنوز برنامهای ننوشتهاند، مناسب است.
Haskell چیست؟
یادگیری زبان هسکل، که یک زبان برنامهنویسی کاملاً فانکشنال است، مانند یادگیری برنامهنویسی برای اولین بار سرگرمکننده بوده و شما را مجبور میکند تا متفاوت فکر کنید. به طور کلی، در زبانهای دستوری شما با دادن دنبالهای از تَسکها به کامپیوتر و سپس اجرای آنها یکی پس از دیگری دست به توسعهٔ یک برنامه میزنید و این در حالی است که تَسکهای مد نظرتان در حال اجرا میتوانند تغییر حالت دهند (برای مثال شما متغیر a را با ۵ مقداردهی میکنید، یکسری توابع را اجرا میکنید و سپس مقدار آن را جایگزین میکنید.)
کار روی هسکل در سال ۱۹۸۷ شروع شد؛ زمانی که تعدادی از پژوهشگران دور هم جمع شدند تا یک زبان فانکشنال اپنسورس که برای تحقیقات آکادمیک مناسب باشد، طراحی کنند. گزارش این مجمع در سال ۲۰۰۳ منتشر شد و نسخهٔ پایداری از زبان هسکل همراه با آن ارائه گردید.
در حقیقت، در زبانهای به اصطلاح Imperative (دستوری) شما با استفاده از ساختارهای کنترلی جریان تعدادی دستور را چندین بار تکرار میکنید اما در یک زبان برنامهنویسی Functional (تابعی) اصلاً نیازی نیست اینگونه به سیستم بگویید چه کارهایی را انجام دهد، بلکه فقط کافی است دست به تعریف یکسری توابع بزنید که Haskell هم یکی از این نوع زبانها است. به عنوان نمونه برنامهٔ نوشتهشده با این زبان داریم:
import System.Random
main = (randomRIO (1, 100) :: IO Int) >>= print
همانطور که به سادگی میتوان حدس زد، برنامهٔ فوق اقدام به پرینت یک عدد تصادفی (رَندوم) در زبان برنامهنویسی هسکل میکند.
به طور کلی میتوان گفت که هسکل یک زبان برنامهنویسی مختصر مفید است چرا که این زبان از تعداد زیادی مفاهیم سطح بالا استفاده میکند و نیاز به توضیح نیست که برنامههای نوشتهشده با این زبان معمولاً از برنامههای معادلشان در زبانهای دستوری خلاصهتر بوده و اساساً نگهداری این دست برنامهها آسانتر است.