کتاب صوتی جبر و نظریه دستهها (Category Theory) برای برنامهنویسان
ارتقا کدنویسی شما: جبر و نظریه دستهها برای برنامهنویسان دنیای جدیدی از برنامهنویسی را کشف کنید: جبر و نظریه دستهها برای برنامهنویسان آیا به دنبال راهی هستید تا کدهای خود را بهینهتر، قابل فهمتر ...
🎓 دوره آموزشی جامع
📚 اطلاعات دوره
عنوان دوره: دوره جبر و نظریه دستهها (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. طراحی مفسر برای مونَدهای آزاد
برای آموختن، همیشه لازم نیست بخوانید
گاهی بهترین فرصت یادگیری زمانی است که در مسیر رفتوآمد هستید، قدم میزنید، استراحت میکنید یا کارهای روزمرهتان را انجام میدهید. محتوای صوتی کمک میکند از این لحظهها برای شنیدن، اندیشیدن و آشنایی با موضوعات تازه بهره ببرید.
◷
یادگیری در دل روزمرگی
از زمان رفتوآمد، پیادهروی یا استراحت برای شنیدن محتوای مفید استفاده کنید؛ بدون آنکه همیشه به کتاب چاپی یا صفحه نمایش نیاز داشته باشید.
◎
تجربهای شنیداری و دلنشین
با روایت صوتی، توضیحات گفتاری و فضای شنیداری هر محتوا همراه شوید و متناسب با سلیقه خود، شیوه تازهای برای دریافت مطالب تجربه کنید.
✦
گسترش دانش و دیدگاه
با موضوعات متنوع آشنا شوید، ایدههای تازه کشف کنید و فرصت بیشتری برای یادگیری مستمر و پرورش کنجکاوی خود بسازید.
♫
همراه با سبک زندگی شما
محتوای صوتی را متناسب با برنامه روزانه خود انتخاب کنید و در زمان مناسب، شنیدن را به بخشی از عادتهای شخصیتان تبدیل کنید.
کتاب صوتی یا پادکست؟
کتاب صوتی
راهی برای همراه شدن با محتوای یک کتاب از طریق شنیدن. بسته به اثر، میتوانید داستانها، آموزشها، مفاهیم تخصصی یا مطالب کاربردی را در قالب روایت و بیان صوتی دنبال کنید.
مناسب برای شنیدن و مرور محتوای کتابها
پادکست آموزشی
فرصتی برای دنبال کردن موضوعات مشخص در قالب گفتوگو، روایت، توضیح آموزشی یا مجموعهای از قسمتهای صوتی؛ مناسب برای کشف ایدهها و آشنایی با دیدگاههای گوناگون.
مناسب برای یادگیری موضوعی و شنیدن دیدگاههای تازه
هر جا که هستید، شنیدن را آغاز کنید
با دستگاه مناسب خود، محتوای صوتی را به آسانی دنبال کنید.
▯
گوشی هوشمند
اندروید و آیفون
▣
تبلت
برای شنیدن و دنبال کردن محتوا
▤
رایانه و لپتاپ
با پخشکننده صوتی سازگار
♫
هدفون و بلندگو
برای شنیدن متناسب با محیط
چطور از تجربه شنیدن بیشتر بهره ببریم؟
✦ زمان مناسبی برای شنیدن انتخاب کنید؛ زمانی که بتوانید با آرامش به محتوا توجه داشته باشید.
✦ برای مطالب آموزشی، نکتههای مهم را یادداشت کنید یا پس از پایان شنیدن، آنها را مرور کنید.
✦ اگر محتوا طولانی است، آن را در چند نوبت دنبال کنید تا فرصت بیشتری برای درک و مرور داشته باشید.
✦ هنگام رانندگی یا انجام کارهای نیازمند تمرکز، ایمنی را در اولویت قرار دهید و از شیوه شنیدنی استفاده کنید که حواس شما را مختل نکند.
هر شنیدن، فرصتی برای کشف است
با کتابهای صوتی و پادکستهای آموزشی، دنیای تازهای از ایدهها، روایتها و آموختنیها را به لحظههای خود اضافه کنید.
express24.ir
امکانات پخش، ادامه شنیدن و دسترسی آفلاین به نوع فایل، دستگاه و نرمافزار مورد استفاده بستگی دارد.
تگها:
آموزش آنلاین
برنامه نویسی
برنامهنویسی تابعی (Functional Programming)
جبر و نظریه دستهها (Category Theory) برای برنامهنویسان
دوره آموزشی
نظرات
هنوز نظری ثبت نشده است.
وارد شوید تا نظر ثبت کنید.