ترجمه بی سروتهی با اضافات خودم از مقدمه کتاب
Learn You a Haskell for Great Good, 2011 (نسخه
آنلاین کتاب)
هسکل سرگرمیه و این چیزیه که دربارش میتونم بگم!یادگیری هسکل برای کسی که تجربه برنامه نویسی با پایتون، جاوا، ++C وووو داره ساده تره. اگر تا حالا برنامه نویسی نکردید ولی یک شخص باهوش هستید شرط می بندم (Miran Lipovaca شرط می بنده!) می تونید بشینید و هسکل یاد بگیرید. (واو! هسکل به عنوان اولین زبان برنامه نویسی تون؛ بعدا به خودتون افتحار می کنید
)
در اولین برخوردم با هسکل، زبان خیلی عجیبی در نظرم اومد، اما بعد از رد شدن از این مانع اولیه، همه چی آرومه، من چقدر خوشبختم! اگر با هسکل در ابتدای یادگیری احساس غربت میکنید، بی خیالش نشید: یادگیری هسکل مثل یادگیری برنامه نویسی برای اولین باره! باحاله و مجبورتون میکنه طور دیگه ای فکر کنید.
هسکل چیه؟هسکل یک
زبان برنامه نویسی تابعی خالصه. در زبانی مثل Python دنباله ای از وظایف رو به کامپیوتر می دید و کامپیوتر اونها رو اجرا میکنه. و در حین اجرای کد، کامپیوتر می تونه وضعیت رو تغییر بده. مثلا شما مقدار a = 5 رو تعریف می کنید و بعد از یکسری عملیاتی که انجام میدید (a = a+۱)، ممکنه مقدار a تغییر کنه. همچنین ساختارهایی مثل حلقه های while و for وجود داره تا بشه یک دستورالعمل رو چندین بار اجرا کرد.
اما برنامه نویسی تابعی خالص طور دیگه ای کار میکنه. به کامپیوتر نمیگید چی انجام بده، بلکه چیزی رو براش تعریف میکنید. مثلا می تونید بهش بگید که فاکتوریل یک عدد یعنی ضرب همه اعداد صحیح از یا تا عدد موردنظر و به عنوان یک تابع توصیفش کنید. در برنامه نویسی تابعی نمی تونید یک متغییری رو که تعریف کردید، بعدا به چیز دیگه تغییر بدید. اگر a=5 برای همیشه a=5
هسکل تنبله: هسکل توابع رو تا زمانی که نیاز نباشه که به شما نتیجه ای رو نمایش بده، اجرا نمی کنه (حداقل محاسبه تا جواب)!
چی نیاز دارید تا شیرجه برید؟نصب حداقلی: ادیتور متنی + کامپایلر. ادیتورتون هر چی بود، بود! برای کامپایلر هم از GlasgowHaskell Compiler=GHC می تونید استفاده کنید که محبوبترین کامپایلر هسکله.
نصب کامل:
Haskell Platformمقالات دیگه:
http://tinyurl.com/hask3lhttp://tinyurl.com/bsm7gcnچند زبان برنامه نویسی تابعی دیگه:
LISP اولین زبان برنامه نویسی تابعی است (1958) که با استفاده از لیستهای پیوندی (Linked List) به عنوان ساختار مرکزی دادهها ابداع شد. پراستفاده ترین نسخه های LISP Common ، LISP و Schema هستند.
ML که برگرفته از Language Meta است، یک زبان برنامه نویسی تابعی با دامنه ایستا (Static) است و تفاوت اصلی اش با زبان LISP در Syntax یا همون گرامرشه. شبیه زبان برنامه نویسی پاسکال است
#F، اف شارپ یک زبان برنامه نویسی شامل برنامه نویسی تابعی و برنامه نویسی شی گرای دستوری است که در چهارچوب Net. فعالیت میکنه. شاخه ای از ML بوده و بسیار با OCAML سازگاره.