کتاب جبر و نظریه دستهها (Category Theory) برای برنامهنویسان با فرمت AZW3 برای کتابخوان کیندل و فرمت EPUB
ارتقا کدنویسی شما: جبر و نظریه دستهها برای برنامهنویسان دنیای جدیدی از برنامهنویسی را کشف کنید: جبر و نظریه دستهها برای برنامهنویسان آیا به دنبال راهی هستید تا کدهای خود را بهینهتر، قابل فهمتر ...
🎓 دوره آموزشی جامع
📚 اطلاعات دوره
عنوان دوره: دوره جبر و نظریه دستهها (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) برای برنامهنویسان
دوره آموزشی
نظرات
هنوز نظری ثبت نشده است.
وارد شوید تا نظر ثبت کنید.