کتاب Soar with Haskell: The ultimate beginners’ guide to mastering functional programming from the ground up (Soar with Haskell: راهنمای مبتدیان نهایی برای تسلط بر برنامه نویسی کاربردی از ابتدا) کتابی جامع و در دسترس است که برای توانمندسازی خوانندگان با اصول و تمرین برنامهنویسی کاربردی با استفاده از زبان Haskell طراحی شده است.
کتاب Soar with Haskell که برای مبتدیان و علاقهمندان به طور یکسانایدهآل است، یک رویکرد ساختاریافته و کامل برای یادگیری Haskell، از مفاهیم اساسی تا تکنیکهای پیشرفته ارائه میدهد. این کتاب با ارائه پایهای محکم در برنامهنویسی عملکردی، خوانندگان را به مهارتهایی مجهز میکند تا به طور مؤثر از Haskell برای توسعه راه حلهای نرمافزاری قوی و ظریف استفاده کنند و آن را به منبعی ضروری برای هر کسی که به دنبال سفر به دنیای هیجانانگیز برنامهنویسی عملکردی است تبدیل میکند.
در ادامه مقدمهای از کتاب Soar with Haskell را از زبان نویسنده شرح خواهیم داد.
مقدمهای بر کتاب Soar with Haskell:
این کتاب مقدمهای بر برنامهنویسی تابعی در Haskell ارائه میدهد:
- برنامهنویسی تابعی (FP) یکی از پارادایمهای اصلی برنامهنویسی به همراه برنامهنویسی ضروری و برنامهنویسی شی گرا است. از توابع به عنوان مفهوم اصلی محاسبات خود استفاده میکند – تبدیل ورودی به خروجی به روشی قابل پیشبینی و مستقل از زمینه. در حالی که بسیاری از زبانهای غیر FP نیز توابعی را به شکلی ارائه میدهند، در FP، توابع زبان واقعاً وضعیت درجه یک دارند. آنها نه تنها محاسباتی هستند، بلکه دادههایی نیز هستند که میتوانند توسط توابع دیگر (در مرتبه بالاتر)، به صورت پویا از توابع سادهتر مونتاژ شوند، در ساختارهای داده یا خود محفظههای داده ذخیره شوند.
- Haskell در میان زبانهای برنامهنویسی تابعی از این جهت متمایز است که بیتردید پارادایم FP را در بر میگیرد. از آنجا که هیچ سازشی برای برنامهنویسی ضروری نمیکند، Haskell مجبور شد راه حلهای کاملاً جدیدی برای مقابله با مشکلات برنامهنویسی رایج ارائه دهد که در حل مشکلات سطح بعدی نیز موفق بودند. به این ترتیب، الهام بخش طراحان زبانهای برنامهنویسی دیگر (اعم از FP و غیر FP) و کتابخانههای آن زبانها شده است.
بیشتر بخوانید: کتاب Practical Haskell
Haskell علاوه بر وفاداری به اصول FP، به دلیل سیستم پیچیده استاتیک خود نیز مشهور است. این بدان معنی است که برنامههای Haskell به طور خودکار برای انواع خاصی از اشتباهات (که به عنوان خطاهای نوع شناخته میشوند) قبل از اجرا بررسی میشوند.
علاوه بر این، به لطف مکانیزم استنتاج نوع قدرتمند Haskell، برنامهنویسان مجبورند خودشان حاشیهنویسی نوع کمی بنویسند. با در نظر گرفتن تمام جنبههای قبلی FB در Haskell، موضوع مشترک این کتاب انتزاع است.
مکانیسمهای زیادی برای انتزاع و مثالهای قدرتمندی از انتزاعها ارائه میکند که به ما امکان میدهد درباره الگوهای برنامهنویسی رایج صحبت کرده و استدلال کنیم، و زمانی که از آنها (دوباره) استفاده میکنیم، برنامهنویسان مؤثرتری میشویم.
کتاب Soar with Haskell برای چه کسی است؟
این کتاب برای همه کسانی است که قبلاً تجربه برنامهنویسی دارند و میخواهند FP را در Haskell یاد بگیرند:
- اگر با برنامهنویسی امری یا شی گرا آشنایی دارید، این کتاب شما را با دنیای شگفتانگیز FP آشنا میکند.
- اگر قبلاً با سایر زبانهای FP آشنا هستید، ویژگیها، ایدهها و سبک برنامهنویسی منحصربهفرد زبان Haskell را کشف خواهید کرد.
- اگر زبان برنامهنویسی فعلی خود را پشت سر گذاشتهاید، برای یک چالش جدید آماده هستید، یا میخواهید دوباره عاشق برنامهنویسی شوید، سفر شما از اینجا شروع میشود.
آنچه کتاب Soar with Haskell پوشش میدهد:
فصل ۱، توابع، مفهوم اصلی FP – توابع را توضیح میدهد. تعاریف تابع را معرفی میکند و نحوه فراخوانی توابع را نشان میدهد. این شامل توضیح همه عناصر نحوی (انواع، امضای نوع، بدنه تابع و غیره) و نقش آنها است. در طول مسیر، تعدادی از انواع و عملکردهای داخلی را نیز معرفی میکند.
فصل ۲ کتاب Soar with Haskell، انواع دادههای جبری، مکانیسم هاسکل را برای انواع تعریف شده توسط کاربر – انواع دادههای جبری (ADT) معرفی میکند. ما از اشکال ساده ADTها مانند شمارشها و رکوردها به کلیت کامل آنها میپردازیم و عناصر مختلف تعاریف ADT – نام نوع، سازندههای داده و فیلدهای آنها را یاد میگیریم. ما میبینیم که چگونه مقادیر ADT ایجاد میشوند و چگونه با تطبیق الگو از هم جدا میشوند. در نهایت، میبینیم که چگونه ADTها را میتوان نسبت به انواع دیگر پارامتر کرد.
فصل ۳، بازگشت، جایگزین برنامهنویسی کاربردی برای حلقهها را ارائه میدهد. انواع دادههای بازگشتی یک مکانیسم طبیعی برای بیان ساختارهای داده با اندازه دلخواه هستند و توابع بازگشتی راهی برای پردازش این توابع هستند. ما به طور خاص بر بازگشت ساختاری به عنوان یک استفاده اصولی از بازگشت تمرکز خواهیم کرد، اما الگوهای بازگشتی جایگزین را نیز پوشش خواهیم داد.
فصل ۴ کتاب Soar with Haskell، توابع مرتبه بالاتر، توضیح میدهد که چگونه الگوهای تکرار شده در تعاریف تابع را میتوان انتزاع کرد، به ویژه با انتزاع بر روی پارامترهای مرتبه بالاتر. توجه ویژه به توابع کتابخانه مرتبه بالاتر معمولاً مورد استفاده مانند نقشه، فیلتر، foldr و foldl است.
فصل ۵ کتاب Soar with Haskell، توابع کلاس اول، طیفی از ویژگیها و مکانیسمهای زبان را پوشش میدهد که برنامهنویسی تابع گرا را تسهیل میکند، جایی که ما در سطح توابع به جای مقادیر ساده برنامهریزی میکنیم.
فصل ۶ کتاب Soar with Haskell، کلاسهای نوع، مکانیسم منحصربهفرد Haskell را برای پشتیبانی از کلاسهای نوع اضافه بار موقت ارائه میکند. این توضیح میدهد که اضافه بار موقت چیست و چگونه توابع باعث ایجاد امضاهای نوع چند شکلی با محدودیتهای کلاس نوع میشوند.
سپس، خواهیم دید که چگونه کلاسهای نوع از پیش تعریف شده میتوانند برای انواع تعریف شده توسط کاربر نمونهسازی شوند و چگونه کلاسهای نوع تعریف شده توسط کاربر جدید ایجاد میشوند. در نهایت، ما چندین کلاس نوع تعریف شده توسط کاربر و استفاده از آنها در کتابخانههای استاندارد را پوشش میدهیم.
فصل ۷ کتاب Soar with Haskell، ارزیابی تنبل، مکانیسم ارزیابی منحصر به فرد هسکل – ارزیابی تنبل را نشان میدهد. این نشان میدهد که ارزیابی تنبل چگونه کار میکند و هم بر اساس ارزش و هم بر اساس نام، بهبود مییابد. سپس، نحوه استفاده از استراتژی را به نفع خود با استفاده از لیستهایی به عنوان تکرارکنندههایی که عناصر خود را بر اساس تقاضا عرضه میکنند، نشان میدهد. در نهایت، این فصل همچنین به یک تله مکانیسم اشاره میکند – ایجاد ضربات.
فصل ۸ کتاب Soar with Haskell، ورودی/خروجی، روش منحصربهفرد هسکل برای ارتباط با دنیای خارج – مکانیزم I/O آن را توضیح میدهد. ابتدا، این فصل توضیح میدهد که چرا رویکرد موجود زبانهای دیگر به دلیل استراتژی ارزیابی تنبل و اصل خلوص زبان مشکل ساز است. سپس راه حل Haskell را با استفاده از نوع I/O و عملگرهای >>=/return ارائه میدهد. سپس، نماد do را به عنوان یک نماد کاربرپسندتر برای مراحل I/O معرفی میکند. در نهایت، عملیات مشترک ورودی/خروجی را پوشش میدهد.
فصل ۹، Monoids و Foldables، مفهوم تاشوها را معرفی میکند. اینها مجموعههایی هستند که از طیف مشابهی از عملیات پرکاربرد پشتیبانی میکنند. در طول مسیر، متوجه میشویم که Haskell مکانیزمی برای انتزاع بر روی بخشهایی از انواع دارد که سازندههای نوع نامیده میشوند و از مفاهیم جبری مانند نیمهگروهها و monoids برای طراحی الگوریتمهای بسیار کلی استفاده میکند.
فصل ۱۰ کتاب Soar with Haskell، تابعها، تابعهای کاربردی و قابل عبور، ما را بیشتر به سلسله مراتب کلاسهای نوع برای سازندههای نوع هدایت میکند. ما ابتدا تابعها را در نظر میگیریم – ساختارهای دادهای که میتوان روی آنها نقشهبرداری کرد. سپس به سراغ تابعهای کاربردی میرویم که میتوانند چندین ساختار داده را با هم ادغام کنند و در نهایت، قابلیتهای قابل عبور را به عنوان ساختارهای دادهای خواهیم دید که میتوانند با عوارض جانبی نقشهبرداری شوند.
فصل ۱۱، Monads، پادشاه نوع سلسله مراتب سازنده – monads را معرفی میکند. ما ابتدا دو نمونه معروف از مونادها را پوشش خواهیم داد – موناد شاید برای شکست و موناد ایالتی برای گذراندن ایالت. سپس از این مثالها تعمیم داده و کلاس Monad-type را ارائه میکنیم. در نهایت تعدادی نمونه اضافی از مونادها را ارائه خواهیم کرد.
فصل ۱۲ کتاب Soar with Haskell، مبدلهای موناد، نشان میدهد که چگونه میتوان عملکرد مونادهای مختلف را در یک موناد واحد ترکیب کرد. این فصل مکانیسم ترانسفورماتور موناد را پوشش میدهد و طیف وسیعی از نمونههای رایج را ارائه میدهد.
سپس، نشان میدهد که چگونه برنامهها میتوانند جزئیات پیادهسازی مونادها و ترانسفورماتورهای موناد را با زیر کلاسهای موناد انتزاعی کنند. در نهایت، خواهیم دید که چگونه ترانسفورماتورهای موناد یکسان را میتوان به روشهای مختلف برای دستیابی به رفتارهای متفاوت ترکیب کرد.
فصل ۱۳ کتاب Soar with Haskell، زبانهای اختصاصی دامنه، یک تکنیک قدرتمند حل مسأله را مستند میکند که زمانی مناسب است که طیفی از مسائل باید در همان ناحیه مشکل حل شوند – زبانهای خاص دامنه (DSL) تعبیهشده در Haskell. ابتدا چندین نمونه از DSLها را خواهیم دید که برای مناطق مشکل دار مختلف طراحی شدهاند. سپس، ما بر روی تکنیکهای پیادهسازی برای DSL تمرکز خواهیم کرد. کلیترین و انعطاف پذیرترین رویکرد، تعبیه عمیق است. در تضاد با جاسازی کم عمق است که تکنیکی سبکتر و کارآمدتر است.
فصل ۱۴ کتاب Soar with Haskell، ترکیبکنندههای تجزیهکننده، ترکیبکنندههای تجزیهکننده را معرفی میکند، یک DSL سبک و راحت در Haskell برای تجزیه. این را پوشش میدهد که تجزیه چیست و کجا استفاده میشود. سپس، ما یک تعریف اولیه از ترکیبکنندههای تجزیهکننده را خواهیم دید تاایده خوبی از نحوه کار آنها به دستآوریم. از آنجا به کتابخانه پارسک با مقاومت صنعتی میرویم. در نهایت، میبینیم که چگونه میتوان با مشکلات تجزیهکننده رایج با ترکیبکنندههای تجزیهکننده مقابله کرد.
فصل ۱۵ کتاب Soar with Haskell، لنزها، رویکردی هیجانانگیز به فعالیت عادی دسترسی به دادهها در انواع دادههای تودرتو ارائه میکند. اول، رویکرد اصلی را برای رکوردهایی که در Haskell تعبیه شده است نشان میدهد و معایب آن را شناسایی میکند.
سپس، مفهوم لنزها را به عنوان یک جایگزین بسیار راحتتر برای هر دو زمینه خواندن و بهروزرسانی ارائه میکند. ما نشان خواهیم داد که لنزها نه تنها برای رسیدن به اعماق ساختار دادهها بهطور بیاهمیت ترکیب میشوند، بلکه میتوانند برای تعریف یکپارچه میدانهای مجازی نیز استفاده شوند. در نهایت، ترکیبکنندههای لنز اصلی ارائه شده توسط کتابخانه معروف لنز را پوشش میدهیم.
فصل ۱۶ کتاب Soar with Haskell، تست مبتنی بر ویژگی، تست مبتنی بر ویژگی را پوشش میدهد، تکنیک تست قدرتمندی که توسط کتابخانه QuickCheck Haskell پیشگام شده است. مزیتهای تست مبتنی بر ویژگی را نسبت به تست واحد توضیح میدهد.
سپس، نحوه نوشتن خواص و بررسی نتایج آزمون را نشان میدهد. سپس، به شما نشان میدهد که چگونه ADTهای خود را با نوشتن ژنراتور برای آنها آزمایش کنید. در نهایت، کوچک کردن برای مته کردن نمونههای متقابل به اصل آنها استفاده میشود.
سرفصلهای کتاب Soar with Haskell:
- Soar with Haskell
- Contributors
- About the author
- About the reviewer
- Preface
- Part 1: Basic Functional Programming
- Chapter 1: Functions
- Chapter 2: Algebraic Datatypes
- Chapter 3: Recursion
- Chapter 4: Higher-Order Functions
- Part 2: Haskell-Specific Features
- Chapter 5: First-Class Functions
- Chapter 6: Type Classes
- Chapter 7: Lazy Evaluation
- Chapter 8: Input/Output
- Part 3: Functional Design Patterns
- Chapter 9: Monoids and Foldables
- Chapter 10: Functors, Applicative Functors, and Traversables
- Chapter 11: Monads
- Chapter 12: Monad Transformers
- Part 4: Practical Programming
- Chapter 13: Domain-Specific Languages
- Chapter 14: Parser Combinators
- Chapter 15: Lenses
- Chapter 16: Property-Based Testing
- Index
- Other Books You May Enjoy
جهت دانلود کتاب Soar with Haskell میتوانید پس از پرداخت، دریافت کنید.
دیدگاهها
هیچ دیدگاهی برای این محصول نوشته نشده است.