برنامه نویسی با هسکل

با بهترین کتاب‌های برنامه‌ نویسی هسکل، زبان برنامه‌ریزی آن را از مبتدی تا پیشرفته بیاموزید!

اما برنامه‌نویسی فانکشنال (functional programming یا FP) مورد غفلت واقع شده اما برنامه‌نویسی فانکشنال چی هست؟ به طور خلاصه یک پارادایم برنامه‌نویسی در مقابل برنامه‌نویسی رویه‌ای و شی‌گراست. Haskell به خاطر ویژگی‌های منحصر به فردش و کاربردهای گسترده‌اش، آینده‌دار هست. خیلی از شرکت‌ها و پروژه‌های بزرگ از این زبان استفاده می‌کنن و همچنان به توسعه و بهبود اون ادامه می‌دن. این کامپایلر یکی از معروف‌ترین و پرکاربردترین کامپایلرهای Haskell هست که به شما امکان می‌ده کدهای Haskell رو به صورت باینری کامپایل و اجرا کنین. در اوایل سال ۲۰۰۶، فرایند تعریف یک جانشین برای استاندارد هسکل ۹۸، که به‌صورت غیررسمی به آن هسکل پرایم می‌گفتند، آغاز شد؛ بنابراین گذاشته شد که هر ساله تعریف زبان بازبینی شود و یک نسخهٔ جدید در هر سال تولید شود.

در هسکل توابع تاثیرات فرعی ندارند پس به راحتی می‌توان گفت Haskell زبانی محضاً تابعی است. برنامه نویسی انواع مختلفی از پارادایم‌ها را دارد که یکی از این پارادایم‌ها زبان برنامه نویسی تابعی است. در این نوع برنامه نویسی درک آن آسان است اما اجرا آن مقداری دشوار است. یکی از این زبان‌ها با این رویکرد برنامه نویسی، Haskell است که در سال ۱۹۸۰ شروع به توسعه آن کردند و در سال ۱۹۹۰ آن را منتشر کردند و نام این زبان از ریاضیدان آمریکایی Haskell Brooks Curry گرفته شده است. به کد اصلی به تعداد معیارهای اصلی با استفاده از «سی» به عنوان زبان حیاتی جی اچ سی مشهورترین کامپایلر هسکل می‌باشد.

اشاره کرد که مفاهیم برنامه‌نویسی شی‌گرا مثل ابجکت‌، کلاس‌، پنهان‌سازی(encapsulation)، وراثت(inheritance) و چندریختی(polymorphism) را پشتیبانی می‌کنند. در این پارادایم، کدها در غالب متد‌هایی برای اشیا نوشته می‌شوند و قابل فراخوانی روی هر شی (یا در مواردی روی کلاس) هستند. برای یک مسابقه برنامه‌نویسی یک سوال ساده طرح کردم که به راحتی قابل حل باشه ولی یک شرط مهم برا حل گذاشتم، برای حل تنها مجاز به استفاده از زبان Haskell هستید. اما چرا هسکل مهمه و چرا همچین تصمیمی گرفتم؟ در ادامه متوجه می‌شوید. بام لرن  یک مرجع برنامه نویسی می باشد که می تواند تمام آنچه نیاز شما از یک وب سایت آموزشی حرفه ای است را رفع کند.

نو آوری اصلی هسکل در این مسئله اضافه کردن تایپ کلس‌ها است، که در اصل به عنوان راهی اصولی برای اضافه کردن سربارگذاری به این زبان ساخته شدن اند ولی پس از آن اسفتاده‌های دیگری یافته هم یافته‌اند. Haskell یه زبان برنامه‌نویسی تابعی خالصه که به خاطر سادگی، خوانایی و کارایی بالاش، خیلی بین برنامه‌نویس‌ها محبوب شده. این زبان به شما امکان می‌ده تا کدهایی تمیز و کارآمد بنویسین و از ویژگی‌های پیشرفته‌ای مثل توابع بالا مرتبه (Higher-Order Functions) و مونادها بهره‌مند بشین. اگرچه یادگیری Haskell ممکنه برای تازه‌کارها سخت باشه، اما با تمرین و مطالعه می‌تونین به راحتی این زبان رو یاد بگیرین. در نهایت، Haskell به شما کمک می‌کنه تا برنامه‌هایی با کیفیت بالا و بدون خطا بنویسین و به نوآوری در دنیای برنامه‌نویسی بپردازین.

همان‌طور که به سادگی می‌توان حدس زد، برنامهٔ فوق اقدام به پرینت یک عدد تصادفی (رَندوم) در زبان برنامه‌نویسی هسکل می‌کند. این یه فریم‌ورک چندپلتفرمیه که هدفش کار با داده‌های اسکیما دار (schematized) هست. تو این مورد، یه زبان برنامه‌نویسی تابعی خیلی کمک می‌کنه چون با منطق قوی کار می‌کنه. در کنفرانسی دربارهٔ زبان‌های برنامه‌نویسی تابعی و معماری کامپیوتر (FPCA '87) در پورتلند، اورگن، یک جلسه برگزار شد که در آن شرکت‌کنندگان بر تشکیل یک کمیته برای تعریف استانداردهای باز برای زبان‌های این‌چنینی توافق کردند. Haskell یک زبان برنامه‌نویسی قدرتمند، چند پارادایمی و کاملاً تابعی است که به دلیل بیان دقیق محاسبات و قابلیت‌های انتزاعی بالا، بسیار محبوب است. این زبان در حوزه‌های مختلفی از جمله توسعه وب، تحلیل داده، هوش مصنوعی و … مورد استفاده قرار می‌گیرد.

با شروع یک پروژه ساده مانند یک وبلاگ شخصی یا یک ماشین حساب، می‌توانید مهارت‌های خود را تقویت کنید. به تدریج پروژه‌های پیچیده‌تری مانند یک اپلیکیشن موبایل یا یک بازی کوچک را تجربه کنید. ساخت پروژه به شما کمک می‌کند تا مشکلات واقعی را حل کنید و دانش خود را به کار بگیرید. آیا می‌خواهید یک توسعه‌دهنده وب شوید؟ یا شاید علاقه‌مند به ساخت اپلیکیشن‌های موبایل هستید؟ هدف شما تعیین‌کننده مسیر یادگیری و زبان‌های برنامه‌نویسی‌ای است که باید یاد بگیرید. به عنوان مثال، اگر می‌خواهید وب‌سایت بسازید، بهتر است زبان‌هایی مانند HTML، CSS و JavaScript را یاد بگیرید.

مورد آخر می‌تواند برای این خطای وضعیت چک شود و در عوض یک خطای مناسب چاپ می‌کند. Haskell یه زبان برنامه‌نویسی کاملاً تابعیه که به ایمنی نوع (type safety)، دقت ریاضی و ارزیابی ساده تاکید داره. برخلاف زبان‌های دستوری، Haskell محاسبات رو به عنوان ارزیابی توابع ریاضی در نظر می‌گیره که این موضوع کمک زیادی به تولید کدهای بدون باگ، قابل نگهداری و مختصر می‌کنه. این یک عدد صحیح به عنوان آرگومان می‌گیرد ویک عدد صحیح دیگر بازمی‌گرداند. وقتی که آرگومانهای تابع صفر می‌شوند عدد صحیح به صورت یک برگردانده می‌شود.

ما در سکان‌آکادمی معتقدیم همه‌ی انسان‌ها حق دارند، به آموزش باکیفیت و کم‌هزینه دسترسی آسان داشته باشند و همه‌ی افراد می‌توانند با آموزش درست، زندگی فردی و اجتماعی خود را بهتر کنند. با توجه به تخصص تیم ما در حوزه‌ی IT و نیاز روزافزون بازار کار به متخصصان این حوزه، تولید و عرضه‌ی محتوای مهارت ‌محور و تخصصی را در حوزه‌ی IT جدی‌تر دنبال کردیم. در این راه از ابتدای انتخاب مسیر متناسب با توانایی و امکانات دانشجو تا یادگیری، تمرین، کسب مهارت تخصصی و عمومی، و در نهایت معرفی به بازار کار همراه او هستیم... کار روی هسکل در سال ۱۹۸۷ شروع شد؛ زمانی که تعدادی از پژوهشگران دور هم جمع شدند تا یک زبان فانکشنال اپن‌سورس که برای تحقیقات آکادمیک مناسب باشد، طراحی کنند. گزارش این مجمع در سال ۲۰۰۳ منتشر شد و نسخهٔ پایداری از زبان هسکل همراه با آن ارائه گردید.

Haskell یک زبان برنامه نویسی مدرن، استاندارد، کاملا تابعی و non-strict (با قوانین آسان) است. این زبان به طور ویژه برای رسیدگی به طیف گسترده ای از برنامه ها، از عددی گرفته تا نمادین طراحی شده است. در زبان‌های فانشکنال به جای how to do به what to do پرداخته می‌شود یعنی برنامه‌ای که نوشته‌ می‌شود به جزییات اتفاقات سطح پایین کاری ندارد و صرفا تصریح می‌کند از برنامه چه انتظاری داریم! در نهایت باید جی‌پی مورگان، یکی از بزرگترین بانک‌های ایالات متحده رو هم ذکر کنیم. این شرکت چندین ساله که از Haskell استفاده می‌کنه و این زبان به‌طور موثر توی بخش توسعه محصولات جدیدشون به کار گرفته شده.

در نهایت، هر برنامه‌نویس خوبی باید همیشه آماده باشه تا با بیش از یک زبان برنامه‌نویسی کار کنه. و از اونجایی که هر کدوم به روش خودشون کار می‌کنن، باید یاد بگیری چطور با Haskell کار کنی. ارزیابی تنبل در این زبان هم باعث استفاده بهینه‌تر از حافظه میشه چون همون طور که گفتیم محاسبات فقط وقتی انجام میشن که لازم باشه. قابلیت‌های انتزاعی قدرتمند Haskell هم بهت کمک می‌کنن کد مختصر و بیانگر بنویسی که نگهداری و تغییرش راحت‌تر باشه. این ویژگی‌ها اون رو به انتخاب عالی برای پروژه‌هایی تبدیل می‌کنه که صحت، کارایی و نگهداری اولویتشونه. تعریفِ تابع یادتون هست؟ چیزی بود که به ازای هر ورودی، فقط یک خروجی میداد.

JavaScript نه تنها در مرورگرها، بلکه در سمت سرور نیز با استفاده از Node.js کاربرد دارد. این زبان بسیار انعطاف‌پذیر است و یادگیری آن می‌تواند فرصت‌های شغلی گسترده‌ای برای شما فراهم کند. برای شروع آموزش جاوا اسکریپت می‌توانید از منابع متنوع موجود استفاده کنید. شروع برنامه‌نویسی ممکن است در ابتدا پیچیده به نظر برسد، اما با برنامه‌ریزی مناسب و یادگیری اصول اولیه، هر کسی می‌تواند به یک برنامه‌نویس ماهر تبدیل شود. برنامه‌نویسی یکی از مهارت‌های کلیدی در دنیای دیجیتال امروزی است که می‌تواند فرصت‌های شغلی بی‌شماری را ایجاد کند.

چند مورد از لغات هم دائماً در کنار معادل انگلیسی‌شان تکرار می‌شوند تا به یادگیری بیشتر کمک کنند. عمر بیشتر محصولات نرم افزاری بزرگ صرف طراحی و نگهداری می شود، زیرا زبان های برنامه نویسی تابعی راحت‌تر نگهداری می شوند. The York Haskell Compiler یا همان Yhc یک شاخه از ان اچ سی۹۸ می‌باشد اما با تفاوت در اهدافی مثل قابل حمل شدن، ساده‌تر شدن و تأثیرگذارتر شدن، همچنین پشتیبانی تمام و کمال برای هسکل. Yhc دارای ویژگی‌ها‌یی برای جاوا نیز می‌باشد که طبق آن، کاربران محیط‌های شبکه‌ای نیز می‌توانند هسکل را اجرا نمایند. در ترجمه‌ی کتاب حاضر سعی شده مثل خود کتاب از زبانی عامیانه برای انتقال مطالب استفاده شود، مطالب و مفاهیمی که اکثراً به خاطر تدریس‌های پیچیده به سخت بودن معروف شده‌اند. در بعضی قسمت‌های کتاب، بدون لطمه زدن به انتقال مفاهیم، از اصطلاحات کاربردی در زبان‌های برنامه‌نویسی دیگر استفاده شده تا کسانی که با آن زبان‌ها آشنایی دارند ارتباط بهتری با آن مفاهیم برقرار کنند.

اگرچه این اجرا به هیچ وجه ساده و بچه‌گانه نیست و فقط در اجرای درون هسکل، قابل حمل‌تر می‌باشد. HBC یکی از کامپایلرهای کد اصلی هسکل است که در برخی موارد قابل استفاده بوده ولی به طور کلی توسعه داده نمی‌شود و به صورت فعالانه نیز کار نمی‌کند. برای شروع به کار با زبان هسکل ، می توانید از repl آنلاین آن در سایت رسمی خود هسکل استفاده کنید، البته کامپایلرهای انلاین هم در دسترس هستند. این زبان بیشتر روی توابع و تعاملاتشون تمرکز داره، درست مثل منطق و تئوری‌های ریاضی. این زبان با نوع‌دهی قوی و ارزیابی تنبلش معروفه که باعث میشه محاسبات فقط زمانی انجام بشن که واقعاً نیاز باشه، اینطوری کدت بهینه‌تر و خطاهاش کمتر میشه. تو این مقاله، درباره Haskell، مزایا و معایبش صحبت می‌کنیم تا بتونی تصمیم بگیری که چرا باید ازش استفاده کنی.

یک شاخه از ان اچ سی ۹۸ می‌باشد با اهداف ساده‌تر شدن قابل حمل شدن تأثیرگذار تر شدن. همچنین ویژگی‌ها یی برای جاوا نیز دارد که اجازه می‌دهد به کار برانی که در محیط شبکه کار می‌کنند هسکل را نیز اجرا کند. اگر ترجیح می‌دهید با راهنمایی مستقیم یاد بگیرید، شرکت در کلاس‌های حضوری یا کارگاه‌های آموزشی می‌تواند انتخاب مناسبی باشد. سایت‌های معتبری مانند freeCodeCamp و W3Schools منابع رایگانی برای یادگیری برنامه‌نویسی فراهم کرده‌اند. این سایت‌ها محیط‌های تعاملی برای تمرین کدنویسی نیز ارائه می‌دهند. هسکل یکی از زبان‌های تابعیِ خالص و سطحِ بالا (high-level) می‌باشد که بیش از 25 سال در حال توسعه است.

چندتا از لغات هم دائماً در کنار معادل انگلیسی‌شون تکرار شدن تا به یادگیری کمک کنن. نو آوری اصلی هسکل در این مسئله اضافه کردن تایپ کلس‌ها است، که در اصل به عنوان راهی اصولی برای اضافه کردن سربارگذاری به این زبان ساخته شدن اند ولی پس از آن استفاده‌های دیگری یافته هم یافته‌اند. هنگام برنامه نویسی برای تمرکز بیشتر میتوانید به یک موسیقی مناسب گوش کنید. یک کامپایلر بایت کد هسکل است که تمرکز آن روی استفاده بهینه و کمتر از حافظه می‌باشد و همین ویژگی یک مزیت مهم برای این کامپایلر محسوب می‌شود. هلیوم نیز گویشی جدید برای هسکل است که متمرکز بودن روی آن، دانش افراد در رابطه با پیغام‌های خطا را پر رنگ‌تر می‌نماید. آیا میدانید مهم‌ترین ویژگی Haskell چیست جالب‌ترین نکته‌ای که در رابطه با هسکل می‌توان به آن اشاره کرد، پشتیبانی از توابع بازگشتی و انواع داده‌ای، درون‌یابی لیست و عبارات دفاعی و از طرفی تطبیق‌پذیری با الگو می‌باشد.

شروع از پایه یعنی ۱ و ساختد موارد جدید که نسبت به سایر اعضا حق تقدم دارد آغاز می‌شود. یک مثال نوعی از این سیستم شامل حالات بی‌ثبات همزمانی حافظهٔ تراکنشی مدیریت استثناء و انتشار خطاست ولی اتم‌ها برای رسیدن به بسیاری اهداف مفیدند. هسکل یک ترکیب ویژه برای عبارات اتمی ارائه کرده‌است پس برنامه‌هایی که اثر جانبی دارند می‌توانند به نوعی شبیه زبان‌های امری نوشته شوند برنامهٔ زیر یک نام را از ورودی دریافت می‌کند و در خروجی یک پیغام خوشامد گویی چاپ می‌کند. هسکل یک زبان برنامه‌ نویسی پیشرفته با قابلیت استفاده عام و متن‌باز است که حاصل بیش از بیست سال پیشرفت و تحقیق می‌باشد که اجازهٔ توسعه سریع، پیاپی و مختصر و صحیح نرم‌افزار را می‌دهد. در پی انتشار زبان میراندا توسط Research Software Ltd در سال ۱۹۸۵، علاقه به زبان‌های تابعی تنبل افزایش یافت. از بین اینها، میراندا بیشترین زبانی بود که استفاده می‌شد، ولی برنامه‌ها انحصاری بودند.

یک کامپایلر هسکل است که این کامپایلر تأکید بر سرعت و کارایی بالای برنامه‌ها دارد چنانچه تغییراتی در برنامه اعمال شود. هسکل یک زبان فانکشنال است (جزو مطرح‌ترین زبان‌های فانکشنال است) ولی نه یک زبان فانکشنال معمولی، یک زبان purely functional است. برای نصب GHC، می‌تونین از Haskell Platform استفاده کنین که شامل GHC و ابزارهای دیگه مورد نیاز برای برنامه‌نویسی با Haskell هست. با این حال، تلفیق لغات انگیسی در چنین کتابی اجتناب‌ناپذیره، و برای اینکه یه برنامه‌نویس خوب بشین، بلد بودنِ انگلیسی خیلی کمک‌تون می‌کنه. این کتاب هم بعضی جاها برای یادگیری لغات فنی حتی تلفظ اونها رو دقیق توضیح داده.

کلیه ابزارهای وب سایت پلتفرم بوی مرتبا به روز رسانی شده و کاملا به زبان فارسی هستند. همچنین در هر بخش راهنمای نحوه استفاده برای راحتی استفاده شما کاربران قرار داده شده است. ما در تک دیک تلاش می کنیم محتوایی دقیق، واضح و بدون اشتباه منتشر کنیم. اگر احساس می‌کنید محتوای این صفحه باید بروزرسانی، تکمیل یا تصحیح شود و یا سوالی در مورد این مطلب دارید که بدون پاسخ مانده خوشحال می‌شویم آن را در بخش دیدگاه‌های همین مطلب با ما در میان بگذارید. بخش عمده هزینه‌های تک دیک با بودجه شخصی و حمایت‌های شما کاربران گرامی تأمین می‌شود. اگر محتوای این صفحه برای شما مفید واقع شده با روش‌های مختلفی از سراسر دنیا می‌توانید در تکمیل و تداوم فعالیت این سایت به گروه کوچک ما کمک کنید و در اجر معنوی آن نیز سهیم شوید.

پس خیلی احتمال داره که پشت راه‌حل‌های تکنولوژیکی که این بانک به مشتریانش ارائه می‌ده، برنامه‌نویسی با Haskell قرار داشته باشه. اگر به دنبال زبانی هستید که به شما امکان دهد کدهای قابل اعتماد، کارآمد و قابل نگهداری بنویسید، Haskell انتخاب مناسبی است. Haskell به خصوص برای پروژه‌هایی که نیاز به محاسبات دقیق، پردازش داده‌های بزرگ و توسعه نرم‌افزارهای با کیفیت بالا دارند، مناسب است. این یک زبان عمومی به نام Haskell Curry، یک ریاضیدان آمریکاییست که به خاطر مشارکت وی در زمینه منطق ترکیبی معروف هست. کتابخانه‌ها و آیتم‌های کاربردی هسکل، از سال ۲۰۰۷ به بعد در بسته‌ای تحت عنوان Hackage جمع شده و یک پایگاه داده آنلاین تشکیل دادند که برنامه‌های هسکل با استفاده از cabal به آن دسترسی دارند.

این مثال بالا فاکتوریل را به عنوان تابع بازگشتی شرح می‌دهد با یک مبنای پایان بخش (فرض استقرا). تعریف این تابع توسط کدهای هسکل شبیه به گزاری‌های موجود در کتب درسی است. خط اول تابع فاکتوریل نوع تابع را شرح می‌دهد زمانی که اختیاری است یک نوع خوب برای شامل شدن آن مطرح است. در ترجمه‌ی کتاب حاضر سعی شده مثل خود کتاب از زبانی عامیانه برای انتقال مطالب استفاده شود - مطالب و مفاهیمی که اکثراً به خاطر تدریس‌های پیچیده به سخت بودن معروف شده‌اند. این اثر برای یادگیریِ بعضی لغات فنی، حتی تلفظ آن‌ها را دقیق توضیح داده است.

برای شروع آموزش سی شارپ می‌توانید از منابع متنوع موجود استفاده کنید. Java یک زبان برنامه‌نویسی چندمنظوره و شیءگرا است که در بسیاری از حوزه‌ها کاربرد دارد. این زبان به دلیل پایداری و امنیت بالا، معمولاً برای توسعه اپلیکیشن‌های سازمانی و اندروید استفاده می‌شود. یکی از ویژگی‌های مهم Java، قابلیت اجرای آن بر روی پلتفرم‌های مختلف با استفاده از JVM (Java Virtual Machine) است. یادگیری Java می‌تواند شما را برای مشاغل مختلف آماده کند، از توسعه نرم‌افزارهای موبایل گرفته تا طراحی سیستم‌های بزرگ سازمانی.

تعداد کتاب‌هایی هم که به پیاده‌سازیِ سبکِ فانکشِنال در زبان‌های رایج (مثل پایتون و JavaScript) پرداختن، بیشتر شدن. بعضی‌ها یادگیری برنامه‌نویسیِ تابعی رو مستلزمِ فراموش کردن خیلی از قواعدی که در زبان‌های دیگه یادگرفتن می‌دونن. پس اگه هیچ تجربه‌ای با برنامه‌نویسی ندارین، شاید بشه گفت که فرصت خوبی برای یادگیری یه زبان فانکشِنال دارین! از هسکل‌نویس‌ها که بپرسین، عموماً هسکل رو گزینه‌ی بهتری برای شروع به برنامه‌نویسی می‌دونن. برای افرادی که در زبان هسکل مبتدی هستند این مترجم مفید است ولی به معنای یک اجرای ساده و بچگانه نیست بلکه بسیار قابل حمل‌تر در اجرا درون هسکل می‌باشد.

ریشه و پایه‌ی زبان‌های فانکشنال، ‌lambda calculus است که ایده‌ی نوشتن function و حل مساله به روش بازگشتی را پایه گذاشت. بام لرن یک وبسایت اطلاع رسانی که شامل مطالب در زمینه طراحی سایت و سئو سایت و نرم افزار موبایل و اتوماسیون اداری و تبلیغات گوگل و مطالبی از این دست می باشد. یادگیری Haskell ممکنه برای تازه‌کارها سخت باشه، مخصوصا اگه با مفاهیم تابعی آشنا نباشن. مطمئناً Haskell به خاطر توانایی مدیریت ساختارهای داده پیچیده و تمرکز بر امنیت و قابلیت اطمینان کد، شهرت زیادی به دست آورده. چنانچه که قبلا حساب خود را ساخته اید اما به ایمیل یا پسورد آن دسترسی ندارید با پشتیبانی تماس بگیرید.

در کنفرانسی دربارهٔ زبان‌های برنامه‌نویسی تابعی و معماری کامپیوتر (FPCA ’87) در پورتلند، اورگن، یک جلسه برگزار شد که در آن شرکت‌کنندگان بر تشکیل یک کمیته برای تعریف استانداردهای باز برای زبان‌های این‌چنینی توافق کردند. C++ و C# دو زبان قوی و پرکاربرد هستند که در حوزه‌های مختلفی مانند بازی‌سازی و توسعه نرم‌افزارهای کاربردی استفاده می‌شوند. C++ به دلیل سرعت و کارایی بالا در پروژه‌هایی که نیاز به عملکرد قوی دارند، مانند موتورهای بازی و سیستم‌های تعبیه‌شده، مورد استفاده قرار می‌گیرد. از سوی دیگر، C# زبان اصلی توسعه در محیط .NET است و برای ساخت برنامه‌های ویندوز و بازی‌های ویدیویی با استفاده از Unity بسیار مناسب است. اگر به بازی‌سازی علاقه‌مند هستید، یادگیری این زبان‌ها می‌تواند مسیر شما را هموار کند.

از مهم‌ترین نقاط قوتِ هسکل، می‌توان به type system خیلی قوی‌اش اشاره کرد. اما زبان‌های فانکنشال مثل Haskell و #F و Erlang و elixir و Clojure روش فکری متفاوتی دارند! در این زبان‌ها کد‌ها در قالب فانکشن‌ها نوشته می‌شوند (مثل برنامه‌نویسی رویه‌ای؟) اما فانکشن‌ها شهروندان درجه‌اول در زبان هستند یعنی کار کردن با آن‌ها به راحتی کار کردن با متغیرهاست و امکان pass شدن و ترکیب شدن و .. یک نقطهٔ میانی برای توزیع هسکل میبا شد به وسیلهٔ cabal فعالیت‌های توسعه آفرینی هسکل به صورت یک قطب درآمده نصب برنامه‌های جدید هسکل به وسیلهٔ Hackage و وسایل نصب cabal امکان‌پذیر است. این نصب‌ها بازگشتی و نیاز به وابستگی‌ها یی دارد که اینها با وجود ان در دسترس هستند. استفاده از Haskell چندین مزیت داره، به‌خصوص برای کارهای پیچیده و حساس.

برخی از پرفروش‌ترین کتاب‌های برنامه‌نویسی هسکل برای خوانندگانی که یک یا چند زبان برنامه‌نویسی می‌دانند نوشته شده‌اند. هسکل مشخصات باز و منتشر شده دارد که چند پیاده‌سازی از آن وجود دارد. پیاده‌سازی اصلی آن کامپایلر باشکوه هسکل گلاسگو (جی اچ سی)، هم تفسیر گر و هم کامپایلر بومی است که در اکثر پلتفورم‌ها اجرا می‌شود. جی اچ سی بخاطر تایپ سیستم غنی ای که نو آوری‌های اخیر همچون دیتا تایپ‌های جبری عمومی و خانواده‌های تایپ را در خود جای می‌دهد مورد ملاحظه است. بازی معیار زبان‌های کامپیوتری نیز کارایی بالای پیاده‌سازی همزمانی و همسانی این زبان را به برجستگی نشان می‌دهد. این یک عدد صحیح به عنوان ارگومان می‌گیرد ویک عدد صحیح دیگر بازمی‌گرداند.

کتاب‌های معرفی زبان برنامه‌نویسی هسکل، هر فصل کوچک و مستقل، موضوع جدیدی را معرفی می‌کنند، تا زمانی که خواننده بتواند برنامه‌های کاملا اساسی را بنویسد. اگه تازه‌کاری یا یه برنامه‌نویس حرفه‌ای، یادگیری Haskell یه دید تازه و متفاوت از حل مسائل پیچیده محاسباتی بهت میده. ولی Haskell چیه؟ یه زبان برنامه‌نویسی خاص و قدرتمنده که در توسعه نرم‌افزار با رویکرد متفاوتش خودشو متمایز کرده. Haskell یه زبان کاملاً تابعیه که با سبک برنامه‌نویسی دستوری مثل C++ یا Python فرق داره. با انتخاب هدف مناسب، یادگیری زبان‌های پایه، استفاده از منابع آموزشی معتبر و تمرین مداوم، می‌توانید به یک برنامه‌نویس موفق تبدیل شوید. برنامه‌نویسی نه تنها به شما امکان می‌دهد ایده‌های خود را به واقعیت تبدیل کنید، بلکه درهای جدیدی از فرصت‌های شغلی و خلاقیت را به روی شما باز می‌کند.

طبق سنت همه زبان‌های برنامه‌نویسی، اولین برنامه ما یه برنامه ساده Hello World خواهد بود. شاید برات عجیب باشه، ولی فیسبوک از Haskell توی برنامه‌های داخلیش استفاده می‌کنه. این زبان رو برای ساخت ابزارهای امنیتی برای مقابله با اسپم استفاده کردن. انتخاب Haskell توسط فیسبوک به خاطر سطح بالای توسعه تعاملی و کاراییش بوده. از نتایج مثبتی که یاد گرفتنِ هسکل داره، یه جور تغییر کلی در طرز فکر برنامه‌نویس‌ه. به عنوان مثال به جای حل یک مسئله با loop یا حلقه‌ی for (که در هسکل وجود نداره!)، استفاده از توابع بازگشتی (توابعی که خودشون رو صدا می‌زنن) درک از مسئله رو ممکنه کاملاً متفاوت کنه.


برنامه نویسی گولنگ