کتاب رمزگشایی مونَدها (Monads): راهنمای عملی با فرمت AZW3 برای کتابخوان کیندل و فرمت EPUB
رمزگشایی مونَدها (Monads): راهنمای عملی - گامی بلند در برنامهنویسی تابعی رمزگشایی مونَدها (Monads): راهنمای عملی - سفری به قلب برنامهنویسی تابعی آیا از پیچیدگیهای برنامهنویسی سنتی خسته شدهاید؟ آی...
🎓 دوره آموزشی جامع
📚 اطلاعات دوره
عنوان دوره: دوره رمزگشایی مونَدها (Monads): راهنمای عملی
موضوع کلی: برنامه نویسی
موضوع میانی: برنامهنویسی تابعی (Functional Programming)
📋 سرفصلهای دوره
- 1. مقدمهای بر برنامهنویسی تابعی
- 2. برنامهنویسی اعلانی در مقابل برنامهنویسی امری
- 3. توابع به عنوان شهروند درجه یک (First-Class Functions)
- 4. توابع خالص (Pure Functions) و اثرات جانبی (Side Effects)
- 5. شفافیت ارجاعی (Referential Transparency)
- 6. تغییرناپذیری (Immutability) و مزایای آن
- 7. توابع مرتبه بالا (Higher-Order Functions)
- 8. ترکیب توابع (Function Composition)
- 9. کاری کردن (Currying)
- 10. کاربرد جزئی (Partial Application)
- 11. عبارات در مقابل دستورات (Expressions vs. Statements)
- 12. ارزیابی تنبل (Lazy Evaluation)
- 13. ساختارهای داده تغییرناپذیر
- 14. بازگشت (Recursion) به جای حلقهها
- 15. بازگشت دمی (Tail Recursion) و بهینهسازی آن
- 16. چالش مدیریت اثرات جانبی در کد خالص
- 17. معرفی مفهوم زمینه یا کانتکست (Context)
- 18. مشکل مقادیر پوچ (The Problem with Null)
- 19. الگوهای مدیریت خطا: کدهای بازگشتی در مقابل استثناها
- 20. نیاز به یک انتزاع برای کار با زمینهها
- 21. مقدمهای بر تایپکلاسها (Typeclasses)
- 22. آشنایی با مفهوم Functor
- 23. قانون Functor: نگاشت (Mapping) روی یک زمینه
- 24. پیادهسازی `map` برای یک کانتینر ساده
- 25. Functor برای کانتینر Option/Maybe
- 26. Functor برای کانتینر Either/Result
- 27. Functor برای لیستها
- 28. قانون اول Functor: قانون همانی (Identity Law)
- 29. قانون دوم Functor: قانون ترکیب (Composition Law)
- 30. چرا قوانین Functor مهم هستند؟
- 31. محدودیتهای Functor: کار با توابع داخل یک زمینه
- 32. معرفی Applicative Functors
- 33. تابع `pure` یا `of`: قرار دادن یک مقدار در زمینه پیشفرض
- 34. تابع `ap` یا `<*>`: اعمال یک تابع در زمینه روی یک مقدار در زمینه
- 35. تفاوت `map` و `ap`
- 36. حل مشکل اعمال توابع چندآرگومانی با Applicative
- 37. پیادهسازی Applicative برای Option/Maybe
- 38. پیادهسازی Applicative برای Either/Result
- 39. قوانین Applicative: همانی، هومومورفیسم، تعویض
- 40. کاربرد عملی Applicative: اعتبارسنجی فرم
- 41. محدودیت Applicative: محاسبات وابسته و زنجیرهای
- 42. معرفی مونَد (Monad): گام بعدی در انتزاع
- 43. ایده اصلی مونَد: توالیبندی محاسبات در یک زمینه
- 44. تابع `flatMap` یا `bind` یا `>>=`: قلب مونَد
- 45. تفاوت کلیدی `map` و `flatMap`
- 46. حل مشکل کانتینرهای تودرتو (`Maybe<Maybe<T>>`)
- 47. تعریف رسمی مونَد: `pure` و `flatMap`
- 48. قانون اول مونَد: همانی چپ (Left Identity)
- 49. قانون دوم مونَد: همانی راست (Right Identity)
- 50. قانون سوم مونَد: شرکتپذیری (Associativity)
- 51. اهمیت قوانین مونَد برای پیشبینیپذیری کد
- 52. رابطه بین Functor، Applicative و Monad
- 53. شیرینی سینتکسی (Syntactic Sugar): `do`-notation یا `for-comprehension`
- 54. مونَد Maybe/Option: مدیریت نبود مقدار
- 55. کاربرد عملی Maybe: دسترسی ایمن به پراپرتیهای تودرتو
- 56. زنجیرهسازی عملیات با Maybe Monad
- 57. مونَد Either/Result: مدیریت خطاها و موفقیت
- 58. سمت `Left` و `Right` در Either
- 59. زنجیرهسازی عملیات موفق با Either Monad
- 60. اتصال کوتاه (Short-circuiting) در صورت بروز خطا
- 61. کاربرد عملی Either: پارس کردن و اعتبارسنجی دادهها
- 62. مونَد List: مدلسازی محاسبات غیرقطعی
- 63. درک `flatMap` روی لیستها: تولید ترکیبها
- 64. کاربرد عملی List Monad: فضای جستجو و ترکیبها
- 65. مونَد IO: کپسوله کردن اثرات جانبی
- 66. جداسازی توصیف عملیات از اجرای آن
- 67. ساخت یک برنامه با توالی عملیات IO
- 68. اجرای برنامه IO: "پایان جهان"
- 69. کاربرد عملی IO: خواندن از کنسول و نوشتن در فایل
- 70. مونَد State: مدیریت حالت به روشی خالص
- 71. عبور دادن حالت در طول یک زنجیره از توابع
- 72. عملیات `get` و `put` در State Monad
- 73. کاربرد عملی State: شبیهسازی یک ماشین پشته
- 74. کاربرد عملی State: تولید اعداد تصادفی
- 75. مونَد Reader: فراهم کردن یک محیط اشتراکی
- 76. تزریق وابستگی به روش تابعی
- 77. عملیات `ask` برای خواندن از محیط
- 78. کاربرد عملی Reader: ارسال یک شیء پیکربندی
- 79. مونَد Writer: جمعآوری خروجی جانبی
- 80. ضمیمه کردن لاگها به یک محاسبه
- 81. عملیات `tell` برای ثبت یک پیام
- 82. کاربرد عملی Writer: لاگبرداری از مراحل یک الگوریتم
- 83. بررسی مجدد مونَدها: یک انتزاع واحد برای مشکلات مختلف
- 84. انتخاب مونَد مناسب برای هر مسئله
- 85. مشکل ترکیب مونَدها: مونَدهای تودرتو
- 86. مقدمهای بر تبدیلگرهای مونَد (Monad Transformers)
- 87. تبدیلگر `MaybeT`
- 88. تبدیلگر `EitherT`
- 89. تبدیلگر `StateT`
- 90. مفهوم `lift`: بالا بردن یک عملیات به پشته تبدیلگر
- 91. ساخت یک پشته مونَد (Monad Stack)
- 92. کار با پشتههای مونَد در عمل
- 93. مفهوم مونوئید (Monoid) و ارتباط آن با مونَدها
- 94. ارتباط مونوئید با Writer Monad
- 95. نگاهی به سیستمهای اثر (Effect Systems) به عنوان جایگزین
- 96. مقایسه مونَدها با Promise ها در جاوااسکریپت
- 97. مقایسه مونَدها با `async/await`
- 98. ساخت یک مونَد سفارشی: گام به گام
- 99. اشتباهات رایج در هنگام کار با مونَدها
- 100. نکات مربوط به عملکرد (Performance) در کدهای مونَدی
تگها:
آموزش آنلاین
برنامه نویسی
برنامهنویسی تابعی (Functional Programming)
دوره آموزشی
رمزگشایی مونَدها (Monads): راهنمای عملی
نظرات
هنوز نظری ثبت نشده است.
وارد شوید تا نظر ثبت کنید.