کتاب صوتی برنامه‌نویسی تابعی در Clojure: سادگی و قدرت Lisp

برنامه‌نویسی تابعی در Clojure: سادگی و قدرت Lisp را تجربه کنید! برنامه‌نویسی تابعی در Clojure: سادگی و قدرت Lisp را تجربه کنید! معرفی دوره آیا به دنبال ارتقای مهارت‌های برنامه‌نویسی خود هستید؟ آیا می‌...

انتخاب پلن

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

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

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

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

عنوان دوره: دوره برنامه‌نویسی تابعی در Clojure: سادگی و قدرت Lisp

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

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

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

  • 1. مقدمه‌ای بر برنامه‌نویسی تابعی (Functional Programming)
  • 2. تاریخچه Lisp و اهمیت آن
  • 3. چرا Clojure؟ مزیت‌های میزبانی بر روی JVM و JavaScript
  • 4. راه‌اندازی محیط توسعه: Java، Leiningen و Clojure CLI
  • 5. اولین تعامل: آشنایی با REPL (Read-Eval-Print Loop)
  • 6. مبانی سینتکس: S-expressions، فرم‌ها و پرانتزها
  • 7. انواع داده‌های اولیه: اعداد، رشته‌ها، بولین و nil
  • 8. نمادها (Symbols) و کلمات کلیدی (Keywords)
  • 9. ساختارهای داده‌ای بنیادین: لیست‌ها (Lists)
  • 10. ساختارهای داده‌ای بنیادین: بردارها (Vectors)
  • 11. ساختارهای داده‌ای بنیادین: نقشه‌ها (Maps)
  • 12. ساختارهای داده‌ای بنیادین: مجموعه‌ها (Sets)
  • 13. اصل بنیادین: تغییرناپذیری (Immutability)
  • 14. تعریف و فراخوانی توابع با `defn`
  • 15. توابع بی‌نام (Anonymous Functions) با `fn`
  • 16. اتصال مقادیر: `def` برای تعاریف سراسری
  • 17. اتصالات محلی با `let`
  • 18. قوانین ارزیابی (Evaluation Rules) در Clojure
  • 19. منطق شرطی: `if` و `do`
  • 20. انتخاب‌های چندگانه با `cond` و `case`
  • 21. مفهوم Truthiness و Falsiness در Clojure
  • 22. مستندسازی کد: Docstrings و تابع `doc`
  • 23. انتزاع دنباله (Sequence Abstraction)
  • 24. توابع اصلی کار با دنباله‌ها: `first`, `rest`, `cons`
  • 25. توابع مرتبه بالا (Higher-Order Functions): `map`
  • 26. توابع مرتبه بالا: `filter` و `remove`
  • 27. توابع مرتبه بالا: `reduce`
  • 28. پردازش دنباله‌ها: `take`, `drop`, `take-while`, `drop-while`
  • 29. دنباله‌های تنبل (Lazy Sequences) و مزایای آن
  • 30. ایجاد دنباله‌های تنبل: `range`, `repeat`, `iterate`
  • 31. کار با بردارها: `get`, `assoc`, `conj`
  • 32. کار با نقشه‌ها: `get`, `assoc`, `dissoc`, `keys`, `vals`
  • 33. استفاده از کلمات کلیدی به عنوان تابع در نقشه‌ها
  • 34. واسازی (Destructuring) در `let`
  • 35. واسازی در آرگومان‌های توابع
  • 36. کار با مجموعه‌ها: `union`, `difference`, `intersection`
  • 37. کار با ساختارهای داده تو در تو: `get-in`, `assoc-in`, `update-in`
  • 38. مرتب‌سازی داده‌ها: `sort` و `sort-by`
  • 39. گروه‌بندی داده‌ها با `group-by`
  • 40. ترکیب توابع با `comp`
  • 41. کاربرد جزئی (Partial Application) با `partial`
  • 42. بازگشت (Recursion) به عنوان حلقه تابعی
  • 43. بهینه‌سازی فراخوانی پایانی (TCO) با `loop` و `recur`
  • 44. فضاهای نام (Namespaces) برای سازماندهی کد
  • 45. مدیریت وابستگی‌ها: `ns`, `require`, `use`, `import`
  • 46. مشکل مدیریت حالت (State) در برنامه‌نویسی
  • 47. رویکرد Clojure به حالت: هویت (Identity) و مقدار (Value)
  • 48. اتم‌ها (Atoms): مدیریت حالت هماهنگ‌نشده و همزمان
  • 49. به‌روزرسانی اتم‌ها با `swap!` و `reset!`
  • 50. Ref-ها: مدیریت حالت هماهنگ‌شده و تراکنشی
  • 51. حافظه تراکنشی نرم‌افزاری (Software Transactional Memory - STM)
  • 52. استفاده از بلوک `dosync`
  • 53. Var-ها: اتصالات داینامیک و محدود به نخ (Thread-local)
  • 54. Agent-ها: مدیریت حالت غیرهمزمان (Asynchronous)
  • 55. ارسال وظایف به Agent-ها: `send` و `send-off`
  • 56. مدیریت خطا در Agent-ها
  • 57. Future-ها: محاسبات غیرهمزمان برای مقادیر بازگشتی
  • 58. Promise-ها: تحویل یک مقدار در آینده
  • 59. مفهوم همزمانی (Concurrency) در مقابل موازی‌سازی (Parallelism)
  • 60. موازی‌سازی ساده با `pmap`
  • 61. مقدمه‌ای بر `core.async`: مدل CSP در Clojure
  • 62. کانال‌ها (Channels): ایجاد و استفاده
  • 63. قرار دادن مقادیر در کانال: `>!` و `>!!`
  • 64. برداشتن مقادیر از کانال: `<!` و `<!!`
  • 65. بلوک‌های `go` برای فرآیندهای غیرهمزمان
  • 66. کانال‌های بافر شده (Buffered Channels)
  • 67. چندریختی (Polymorphism) با Multimethods
  • 68. تعریف سلسله مراتب برای Multimethod-ها با `derive` و `isa?`
  • 69. پروتکل‌ها (Protocols): انتزاع مبتنی بر رابط
  • 70. تعریف پروتکل با `defprotocol`
  • 71. پیاده‌سازی پروتکل‌ها با `defrecord`
  • 72. پیاده‌سازی پروتکل‌ها برای انواع داده موجود با `extend-protocol`
  • 73. تفاوت Record-ها و Map-ها: کارایی و نوع
  • 74. `deftype`: ساخت انواع داده سفارشی با کارایی بالا
  • 75. Transducer-ها: پردازش کارآمد و قابل ترکیب داده‌ها
  • 76. درک الگوی Transducer
  • 77. استفاده از Transducer-های داخلی: `map`, `filter`, `take`
  • 78. ساخت یک Transducer سفارشی
  • 79. مدیریت خطا با `try`, `catch`, `finally`
  • 80. پرتاب استثنا (Exception) با `throw`
  • 81. مدیریت منابع با ماکروی `with-open`
  • 82. فرابرنامه‌نویسی (Metaprogramming): کد به عنوان داده
  • 83. ماکروها (Macros): کدی که کد می‌نویسد
  • 84. زمان استفاده (و عدم استفاده) از ماکروها
  • 85. نوشتن یک ماکروی ساده با `defmacro`
  • 86. درک Syntax Quoting, Unquoting و Splicing (`'`, `~`, `~@`)
  • 87. تعامل با جاوا (Java Interoperability): فراخوانی متدها
  • 88. تعامل با جاوا: ایجاد نمونه از کلاس‌ها و دسترسی به فیلدها
  • 89. Clojure Spec: تعریف مشخصات برای داده‌ها
  • 90. اعتبارسنجی داده‌ها با `s/valid?` و `s/explain`
  • 91. تعریف مشخصات برای توابع با `s/fdef`
  • 92. تست‌نویسی مولد (Generative Testing) با استفاده از Spec
  • 93. مقدمه‌ای بر ClojureScript و تفاوت‌های آن با Clojure
  • 94. ابزارهای ساخت (Build Tools): بررسی Leiningen و `project.clj`
  • 95. ابزارهای ساخت: بررسی Clojure CLI و `deps.edn`
  • 96. چارچوب تست‌نویسی `clojure.test`: `deftest` و `is`
  • 97. مبانی کارایی و بهینه‌سازی: Type Hinting و Boxing
  • 98. ساخت یک پروژه واقعی: وب سرور با Ring و Compojure
  • 99. کار با پایگاه داده: آشنایی با `clojure.java.jdbc`
  • 100. اکوسیستم Clojure: جامعه، کتابخانه‌ها و آینده
EXPRESS24 AUDIO EXPERIENCE
یادگیری را بشنوید؛ زندگی کنید
کتاب‌های صوتی و پادکست‌های آموزشی، راهی دلنشین برای کشف ایده‌های تازه، گسترش دانش و استفاده بهتر از لحظه‌های روزمره هستند.
دانش، الهام و تجربه؛ این بار با صدای زندگی
برای آموختن، همیشه لازم نیست بخوانید
گاهی بهترین فرصت یادگیری زمانی است که در مسیر رفت‌وآمد هستید، قدم می‌زنید، استراحت می‌کنید یا کارهای روزمره‌تان را انجام می‌دهید. محتوای صوتی کمک می‌کند از این لحظه‌ها برای شنیدن، اندیشیدن و آشنایی با موضوعات تازه بهره ببرید.
◷
یادگیری در دل روزمرگی
از زمان رفت‌وآمد، پیاده‌روی یا استراحت برای شنیدن محتوای مفید استفاده کنید؛ بدون آنکه همیشه به کتاب چاپی یا صفحه نمایش نیاز داشته باشید.
◎
تجربه‌ای شنیداری و دلنشین
با روایت صوتی، توضیحات گفتاری و فضای شنیداری هر محتوا همراه شوید و متناسب با سلیقه خود، شیوه تازه‌ای برای دریافت مطالب تجربه کنید.
✦
گسترش دانش و دیدگاه
با موضوعات متنوع آشنا شوید، ایده‌های تازه کشف کنید و فرصت بیشتری برای یادگیری مستمر و پرورش کنجکاوی خود بسازید.
♫
همراه با سبک زندگی شما
محتوای صوتی را متناسب با برنامه روزانه خود انتخاب کنید و در زمان مناسب، شنیدن را به بخشی از عادت‌های شخصی‌تان تبدیل کنید.
کتاب صوتی یا پادکست؟
کتاب صوتی
راهی برای همراه شدن با محتوای یک کتاب از طریق شنیدن. بسته به اثر، می‌توانید داستان‌ها، آموزش‌ها، مفاهیم تخصصی یا مطالب کاربردی را در قالب روایت و بیان صوتی دنبال کنید.
مناسب برای شنیدن و مرور محتوای کتاب‌ها
پادکست آموزشی
فرصتی برای دنبال کردن موضوعات مشخص در قالب گفت‌وگو، روایت، توضیح آموزشی یا مجموعه‌ای از قسمت‌های صوتی؛ مناسب برای کشف ایده‌ها و آشنایی با دیدگاه‌های گوناگون.
مناسب برای یادگیری موضوعی و شنیدن دیدگاه‌های تازه
هر جا که هستید، شنیدن را آغاز کنید
با دستگاه مناسب خود، محتوای صوتی را به آسانی دنبال کنید.
▯
گوشی هوشمند
اندروید و آیفون
▣
تبلت
برای شنیدن و دنبال کردن محتوا
▤
رایانه و لپ‌تاپ
با پخش‌کننده صوتی سازگار
♫
هدفون و بلندگو
برای شنیدن متناسب با محیط
چطور از تجربه شنیدن بیشتر بهره ببریم؟
✦ زمان مناسبی برای شنیدن انتخاب کنید؛ زمانی که بتوانید با آرامش به محتوا توجه داشته باشید.
✦ برای مطالب آموزشی، نکته‌های مهم را یادداشت کنید یا پس از پایان شنیدن، آن‌ها را مرور کنید.
✦ اگر محتوا طولانی است، آن را در چند نوبت دنبال کنید تا فرصت بیشتری برای درک و مرور داشته باشید.
✦ هنگام رانندگی یا انجام کارهای نیازمند تمرکز، ایمنی را در اولویت قرار دهید و از شیوه شنیدنی استفاده کنید که حواس شما را مختل نکند.
هر شنیدن، فرصتی برای کشف است
با کتاب‌های صوتی و پادکست‌های آموزشی، دنیای تازه‌ای از ایده‌ها، روایت‌ها و آموختنی‌ها را به لحظه‌های خود اضافه کنید.
کشف محصولات بیشتر در اکسپرس ۲۴
express24.ir
امکانات پخش، ادامه شنیدن و دسترسی آفلاین به نوع فایل، دستگاه و نرم‌افزار مورد استفاده بستگی دارد.
AUDIO PREVIEW
قبل از انتخاب، گوش کنید!
بخشی از سبک محتوای محصولات صوتی ما را بشنوید و با فضای آن آشنا شوید.
♫
نمونه صوتی از سبک محصولات صوتی ما
پیش‌نمایش کوتاهی از سبک پادکست های صوتی محصولات ما
پخش آنلاین
برای تجربه بهتر، می‌توانید از هدفون استفاده کنید.
تگ‌ها: آموزش آنلاین برنامه نویسی برنامه‌نویسی تابعی (Functional Programming) برنامه‌نویسی تابعی در Clojure: سادگی و قدرت Lisp دوره آموزشی

نظرات

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

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