آموزش برنامه‌نویسی تابعی در C++ - آخرین آپدیت

دانلود Functional Programming in C++

نکته: ممکن هست محتوای این صفحه بروز نباشد ولی دانلود دوره آخرین آپدیت می باشد.
نمونه ویدیوها:
توضیحات دوره:

کاربرد اصول برنامه‌نویسی تابعی (Functional Programming) در C++ مدرن را با استفاده از ویژگی‌های معرفی شده در استانداردهای C++17، C++20 و C++23 کشف کنید. در این دوره، مدرس Troy Miles به شما نشان می‌دهد که چگونه با بهره‌گیری از قابلیت‌هایی مانند Lambdas، Ranges، Coroutines و Concepts، کدهایی ماژولارتر، گویاتر و بهینه‌تر بنویسید. در طول مسیر، بیاموزید که چگونه خط لوله‌های تابعی (Functional Pipelines)، متاپروگرمینگ و مشخص‌کننده constexpr می‌توانند رویکرد شما را در حل مسئله در C++ متحول کنند. این دوره همچنین برنامه‌نویسی واکنشی تابعی (FRP)، تطبیق الگو (Pattern Matching) و تلفیق سبک‌های تابعی و دستوری (Imperative) را پوشش می‌دهد تا شما را در تسلط بر تکنیک‌های پیشرفته C++ یاری دهد.

این دوره با GitHub Codespaces ادغام شده است؛ یک محیط توسعه ابری فوری که تمام قابلیت‌های IDE مورد علاقه شما را بدون نیاز به نصب محلی فراهم می‌کند. با GitHub Codespaces می‌توانید در هر زمان و روی هر دستگاهی تمرینات عملی را انجام دهید—در حالی که از ابزاری استفاده می‌کنید که احتمالاً در محیط‌های کاری واقعی با آن مواجه خواهید شد. برای شروع، بخش «استفاده از GitHub Codespaces» را در این دوره بررسی کنید.


سرفصل ها و درس ها

مقدمه Introduction

  • مقدمه Introduction

1. برنامه‌نویسی تابعی در C++ مدرن 1. Functional Programming in Modern C++

  • توابع Accumulate و Reduce Accumulate and reduce

  • لامبداها و Closureها Lambdas and closures

  • راه حل: جمع مستمر فاکتوریل Solution: Factorial continuous add

  • ترکیب توابع با الگوریتم‌های کتابخانه استاندارد Composing functions with standard library algorithms

  • الگوریتم‌های استاندارد (transform, views, accumulate) Standard algorithms (transform, views, accumulate)

  • چالش: جمع مستمر فاکتوریل Challenge: Factorial continuous add

  • برنامه‌نویسی تابعی چیست؟ What is functional programming?

  • اعمال جزئی و Currying (std::bind) Partial application and currying (std::bind)

2. مفاهیم (Concepts) و محدودیت‌های نوع در C++20 2. Concepts and Type Constraints in C++20

  • چالش: تابعی محدود شده توسط Concepts Challenge: Function constrained by concepts

  • سینتکس پایه Concepts Basic concept syntax

  • تعریف Concepts سفارشی Defining custom concepts

  • راه حل: تابعی محدود شده توسط Concepts Solution: Function constrained by concepts

  • چرا از Concepts استفاده کنیم؟ Why concepts?

  • مقایسه Concepts با SFINAE (قبل از C++20) Concepts vs. SFINAE (Pre-C++20)

  • ترکیب Conceptsها Combining concepts

3. رنج‌ها (Ranges) و خط لوله‌ها در C++20/23 3. Ranges and Pipelines in C++20/23

  • ارزیابی تنبل با کوروتین‌ها (مولد فیبوناچی نامحدود) Lazy evaluation with coroutines (infinite Fibonacci generator)

  • راه حل: ساخت یک خط لوله تابعی Solution: Build a Functional pipeline

  • رنج‌ها و خط لوله‌ها در C++20/23 Ranges and pipelines in C++20/23

  • چرا از Ranges استفاده کنیم؟ (تغییر شکل یک مجموعه) Why use ranges? (transforming a collection)

  • ترکیب عملیات‌های متعدد Range برای تغییر مجموعه‌ها Combining multiple range operations to transform collections

  • ترکیب فیلترها و Transformها Combining filters and transforms

  • چالش: ساخت یک خط لوله تابعی Challenge: Build a functional pipeline

4. متاپروگرمینگ تمپلیت‌ها و constexpr 4. Template Metaprogramming and constexpr

  • محاسبات پیشرفته زمان کامپایل: دنباله فیبوناچی Advanced compile-time computation: Fibonacci sequence

  • محاسبه فاکتوریل با استفاده از constexpr Factorial using constexpr

  • چرا ضرب ماتریس در زمان کامپایل؟ Why compile-time matrix multiplication?

  • تمپلیت‌های بازگشتی در C++ Recursive templates in C++

  • متاپروگرمینگ تمپلیت‌ها و constexpr Template metaprogramming and constexpr

  • راه حل: پیاده‌سازی فاکتوریل constexpr Solution: Implement a constexpr factorial

  • چالش: پیاده‌سازی فاکتوریل constexpr Challenge: Implement a constexpr factorial

5. توابع مرتبه بالا و ترکیب توابع در C++23 5. Higher-Order Functions and Composition in C++23

  • ترکیب توابع با لامبداها و std::invoke Function composition with lambdas and std::invoke

  • راه حل: خط لوله ترکیب توابع Solution: Function composition pipeline

  • استفاده از std::move_only_function برای توابع مرتبه بالا Using std::move_only_function for higher-order functions

  • موارد استفاده واقعی از توابع مرتبه بالا در C++ مدرن Real-world use cases of higher-order functions in modern C++

  • مزایای ترکیب توابع برای کد ماژولارتر Benefits of composing functions for more modular code

  • مقدمه‌ای بر توابع مرتبه بالا Introduction to higher-order functions

  • چالش: خط لوله ترکیب توابع Challenge: Function composition pipeline

6. کتابخانه‌های برنامه‌نویسی تابعی 6. Functional Programming Libraries

  • استفاده از الگوریتم‌های سبک تابعی با STL Using functional-style algorithms using the STL

  • فیلتر کردن مقادیر با std::ranges::filter (C++20) Filtering values with std::ranges::filter (C++20)

  • تغییر شکل و جمع زدن یک لیست Transforming and summing a list

  • چالش: فیلتر و تبدیل با STL و Boost.Hana Challenge: Filtering and transforming with STL and Boost.Hana

  • مدیریت Tupleها با Boost.Hana Tuple manipulation with Boost.Hana

  • راه حل: فیلتر و تبدیل با STL و Boost.Hana Solution: Filtering and transforming with STL and Boost.Hana

  • ترکیب Boost.Hana با تکنیک‌های تابعی استاندارد در C++ Combining Boost.Hana with standard functional techniques in C++

7. برنامه‌نویسی واکنشی تابعی (FRP) 7. Functional Reactive Programming

  • جریان ساده RxCpp Simple RxCpp stream

  • کوروتین با RxCpp و Ranges Coroutine with RxCpp and ranges

  • راه حل: شمارنده فراوانی کلمات با RxCpp Solution: Word frequency counter with RxCpp

  • برنامه‌نویسی واکنشی تابعی Functional reactive programming

  • چالش: شمارنده فراوانی کلمات با RxCpp Challenge: Word frequency counter with RxCpp

  • پردازش جریان داده‌های بلادرنگ به روش تابعی Real-time data stream processing in a functional manner

  • مزایای برنامه‌نویسی تابعی برای مدیریت رویدادهای ناهمگام Benefits of functional programming for asynchronous event handling

8. تطبیق الگو و Variantها در C++23 8. Pattern Matching and Variants in C++23

  • کاربردهای std::variant و std::visit در سناریوهای واقعی Applications of std::variant and std::visit in real-world scenarios

  • مقدمه‌ای بر تطبیق الگو و ریشه‌های آن در برنامه‌نویسی تابعی Introduction to pattern matching and its functional programming origins

  • چالش: تطبیق الگو با std::variant Challenge: Pattern matching with std::variant

  • Overloadهای خاص نوع با std::visit Type-specific overloads with std::visit

  • بهبود خوانایی کد با تکنیک‌های تطبیق الگو Improving code clarity with pattern matching techniques

  • راه حل: تطبیق الگو با std::variant Solution: Pattern matching with std::variant

  • تطبیق الگوی پایه با std::variant Basic pattern matching with std::variant

9. کوروتین‌های پیشرفته و برنامه‌نویسی ناهمگام 9. Advanced Coroutines and Asynchronous Programming

  • مدیریت وظایف ناهمگام با کوروتین‌ها Asynchronous task management with coroutines

  • چالش: مدیریت‌کننده وظایف ناهمگام Challenge: Asynchronous task manager

  • ترکیب کوروتین‌ها با ارزیابی تنبل برای اجرای بهینه وظایف Combining coroutines with lazy evaluation for efficient task execution

  • مدیریت وظایف همزمان به روش تابعی Handling concurrent tasks in a functional manner

  • مولد توالی تنبل با co_yield Lazy sequence generator with co_yield

  • راه حل: مدیریت‌کننده وظایف ناهمگام Solution: Asynchronous task manager

  • کوروتین‌های پیشرفته و برنامه‌نویسی ناهمگام Advanced coroutines and asynchronous programming

10. ترکیب سبک‌های تابعی و دستوری 10. Combining Functional and Imperative Styles

  • تعادل بین عملکرد و قابلیت نگهداری با سبک‌های برنامه‌نویسی ترکیبی Balancing performance and maintainability using hybrid programming styles

  • ترکیب سبک‌های تابعی و دستوری Combining functional and imperative styles

  • چالش: بازنویسی کد دستوری به سبک تابعی Challenge: Refactor imperative code into a functional style

  • راه حل: بازنویسی کد دستوری به سبک تابعی Solution: Refactor imperative code into a functional style

  • بازنویسی کد دستوری به سبک تابعی برای افزایش شفافیت Refactoring imperative code into a functional style for clarity

  • خط لوله‌های تابعی با حلقه‌های دستوری Functional pipelines with imperative loops

  • شبیه‌سازی داده‌های تغییرناپذیر با std::shared_ptr Emulating immutable data with std::shared_ptr

جمع‌بندی Conclusion

نمایش نظرات

آموزش برنامه‌نویسی تابعی در C++
جزییات دوره
4h 25m
72
(آخرین آپدیت)
7,251
- از 5
ندارد
دارد
دارد
Troy Miles
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Troy Miles Troy Miles

Troy Miles مهندس نرم افزار ، بلندگو و نویسنده برنده جوایز است. تروی بازی های نویسندگی خود را در مونتاژ های 6502 و x86 برای رایانه های اولیه مانند Commodore 64 ، Apple II و IBM PC آغاز کرد. این روزها ، وی برنامه های وب و موبایل را برای یک شرکت ارزیابی و اتومبیل سازی مستقر در کالیفرنیای جنوبی می نویسد. او کلاه زبان مونتاژ خود را آویزان کرده است ، اما مسلط به JavaScript ، C # ، C ++ ، Java ، Kotlin و Clojure است.