کتاب جبر و نظریه دسته‌ها (Category Theory) برای برنامه‌نویسان با فرمت AZW3 برای کتابخوان کیندل و فرمت EPUB

ارتقا کدنویسی شما: جبر و نظریه دسته‌ها برای برنامه‌نویسان دنیای جدیدی از برنامه‌نویسی را کشف کنید: جبر و نظریه دسته‌ها برای برنامه‌نویسان آیا به دنبال راهی هستید تا کدهای خود را بهینه‌تر، قابل فهم‌تر ...

انتخاب پلن

انتخاب پلن برای ادامه خرید الزامی است.

پرداخت اقساطی
در صورت خرید اقساطی هر قسط: 87,488 تومان
۴ قسط ماهانه. بدون سود، چک و ضامن.
پرداخت اقساطی با دیجی‌پی پرداخت اقساطی با ترب‌پی

🎓 دوره آموزشی جامع

📚 اطلاعات دوره

عنوان دوره: دوره جبر و نظریه دسته‌ها (Category Theory) برای برنامه‌نویسان

موضوع کلی: برنامه نویسی

موضوع میانی: برنامه‌نویسی تابعی (Functional Programming)

📋 سرفصل‌های دوره

  • 1. مقدمه‌ای بر تفکر انتزاعی
  • 2. چرا نظریه دسته‌ها برای برنامه‌نویسان مهم است؟
  • 3. ارتباط برنامه‌نویسی تابعی و نظریه دسته‌ها
  • 4. توابع خالص (Pure Functions) به عنوان پایه
  • 5. تغییرناپذیری (Immutability) و اهمیت آن
  • 6. ترکیب توابع (Function Composition)
  • 7. تفکر در مورد انواع داده (Types)
  • 8. توابع درجه بالاتر (Higher-Order Functions)
  • 9. کری کردن (Currying) و توابع جزئی (Partial Application)
  • 10. جوهر نظریه دسته‌ها: ترکیب‌پذیری
  • 11. تعریف یک دسته (Category): اشیاء و مورفیسم‌ها
  • 12. مورفیسم‌ها به عنوان توابع در برنامه‌نویسی
  • 13. اشیاء به عنوان انواع داده (Types)
  • 14. مورفیسم همانی (Identity Morphism)
  • 15. شرکت‌پذیری ترکیب مورفیسم‌ها (Associativity)
  • 16. مثال‌هایی از دسته‌ها: Set, Hask
  • 17. دسته‌هایی با یک شیء: مونوئیدها (Monoids)
  • 18. ایزومورفیسم (Isomorphism): برابری ساختاری
  • 19. دیاگرام‌های جابجایی (Commutative Diagrams)
  • 20. دوگانی (Duality): معکوس کردن پیکان‌ها
  • 21. شیء اولیه (Initial Object) - مفهوم Void/Nothing
  • 22. شیء پایانی (Terminal Object) - مفهوم Unit/void
  • 23. مفهوم ضرب (Product) در یک دسته
  • 24. پیاده‌سازی Product در برنامه‌نویسی: Tuples و Records
  • 25. مفهوم هم‌ضرب (Coproduct) در یک دسته
  • 26. پیاده‌سازی Coproduct در برنامه‌نویسی: Sum Types و Enums
  • 27. انواع داده جبری (Algebraic Data Types)
  • 28. اشیاء توانی (Exponential Objects) یا تابع‌گونه‌ها
  • 29. ارتباط توابع (Arrows) و اشیاء توانی
  • 30. دسته کارتزین بسته (Cartesian Closed Category) و زبان‌های برنامه‌نویسی
  • 31. فانکتور (Functor) چیست؟ نگاشت بین دسته‌ها
  • 32. اندوفانکتورها (Endofunctors): فانکتورها در یک دسته
  • 33. فانکتور در برنامه‌نویسی: `map` و `fmap`
  • 34. فانکتور چگونه ساختار را حفظ می‌کند؟
  • 35. قانون همانی فانکتور (Identity Law)
  • 36. قانون ترکیب فانکتور (Composition Law)
  • 37. فانکتور Maybe/Optional
  • 38. فانکتور لیست (List)
  • 39. فانکتور Either/Result
  • 40. فانکتور Promise/Future
  • 41. فانکتور تابع (Reader)
  • 42. فانکتور ورودی/خروجی (IO)
  • 43. فانکتور Const
  • 44. ترکیب فانکتورها
  • 45. کایِند (Kind) چیست؟ `* -> *`
  • 46. انواع داده با کایِند بالاتر (Higher-Kinded Types)
  • 47. مفهوم برداشتن (Lifting) یک تابع به یک فانکتور
  • 48. فانکتورهای هم‌وردا (Covariant)
  • 49. فانکتورهای پادوردا (Contravariant)
  • 50. مثال برنامه‌نویسی از فانکتور پادوردا
  • 51. بای‌فانکتور (Bifunctor)
  • 52. پیاده‌سازی بای‌فانکتور: Either و Tuple
  • 53. پروفانکتور (Profunctor)
  • 54. تبدیل طبیعی (Natural Transformation): نگاشت بین فانکتورها
  • 55. توابع چندریختی (Polymorphic Functions) به عنوان تبدیل طبیعی
  • 56. مثال: تبدیل طبیعی از لیست به Maybe
  • 57. قانون طبیعی بودن (Naturality Law)
  • 58. دسته فانکتورها ([C, D])
  • 59. لم یُوندا (Yoneda Lemma) برای برنامه‌نویسان
  • 60. کاربرد عملی لم یُوندا در طراحی API
  • 61. فانکتورهای نمایش‌پذیر (Representable Functors)
  • 62. فانکتورهای اَپلیکَتیو (Applicative Functors)
  • 63. تابع `pure` در اپلیکتیوها
  • 64. تابع `apply` (`<*>`) در اپلیکتیوها
  • 65. قوانین اپلیکتیو: همانی، همومورفیسم، تعویض و ترکیب
  • 66. گذار از فانکتور به اپلیکتیو
  • 67. کاربرد اپلیکتیوها: اعتبارسنجی فرم
  • 68. مونوئیدها در برنامه‌نویسی: اعداد، رشته‌ها، لیست‌ها
  • 69. مونَد (Monad) به عنوان یک مونوئید در دسته اندوفانکتورها
  • 70. تعریف مونَد: `return` و `bind` (`>>=`)
  • 71. پیکان‌های کلاي (Kleisli Arrows)
  • 72. دسته کلاي (Kleisli Category)
  • 73. قانون همانی چپ مونَد (Left Identity)
  • 74. قانون همانی راست مونَد (Right Identity)
  • 75. قانون شرکت‌پذیری مونَد (Associativity)
  • 76. گذار از اپلیکتیو به مونَد
  • 77. مونَد Maybe/Optional برای مدیریت مقادیر پوچ
  • 78. مونَد Either/Result برای مدیریت خطا
  • 79. مونَد State برای مدیریت حالت
  • 80. مونَد Reader برای مدیریت وابستگی‌ها
  • 81. مونَد Writer برای لاگ‌نویسی
  • 82. مونَد IO برای مدیریت اثرات جانبی
  • 83. سینتکس `do-notation` یا `for-comprehension`
  • 84. ترکیب مونَدها: مشکل و راه حل
  • 85. تبدیل‌گرهای مونَد (Monad Transformers)
  • 86. الحاق (Adjunction) چیست؟
  • 87. فانکتورهای الحاقی چپ و راست
  • 88. مثال‌های الحاق در برنامه‌نویسی: Curry/Uncurry
  • 89. کومونَد (Comonad)
  • 90. توابع `extract` و `extend` در کومونَد
  • 91. کومونَد Store
  • 92. کاربرد کومونَدها: پردازش جریان داده
  • 93. لنزها (Lenses)
  • 94. پریزم‌ها (Prisms)
  • 95. پیمایش‌ها (Traversals)
  • 96. اف-جبر (F-Algebras) برای داده‌های بازگشتی
  • 97. کاتامورفیسم (Catamorphism): مفهوم fold
  • 98. آنامورفیسم (Anamorphism): مفهوم unfold
  • 99. مونَدهای آزاد (Free Monads)
  • 100. طراحی مفسر برای مونَدهای آزاد
تگ‌ها: آموزش آنلاین برنامه نویسی برنامه‌نویسی تابعی (Functional Programming) جبر و نظریه دسته‌ها (Category Theory) برای برنامه‌نویسان دوره آموزشی

نظرات

هنوز نظری ثبت نشده است.

وارد شوید تا نظر ثبت کنید.