لطفا جهت اطلاع از آخرین دوره ها و اخبار سایت در
کانال تلگرام
عضو شوید.
آموزش طراحی برنامه نویسی تابعی در اسکاتلا (نسخه Scala 2)
- آخرین آپدیت
دانلود Functional Program Design in Scala (Scala 2 version)
نکته:
ممکن هست محتوای این صفحه بروز نباشد ولی دانلود دوره آخرین آپدیت می باشد.
نمونه ویدیوها:
توضیحات دوره:
در این دوره آموزشی، شما خواهید آموخت که چگونه سبک برنامهنویسی تابعی (Functional Programming) را در طراحی اپلیکیشنهای بزرگتر با زبان اسکاتلا به کار بگیرید. شما با مفاهیم کلیدی و جدید برنامهنویسی تابعی، از ارزیابی تنبل (Lazy Evaluation) گرفته تا ساختاربندی کتابخانهها با استفاده از مونادها (Monads) آشنا خواهید شد. ما روی نمونههای جامعتر و پیچیدهتر، از اکتشاف فضای حالت و تستهای تصادفی گرفته تا شبیهسازهای مدار گسسته کار خواهیم کرد. همچنین، بهترین روشهای (Best Practices) نوشتن کدهای بهینه اسکاتلا در دنیای واقعی را فرا خواهید گرفت و در نهایت، یاد میگیرید که چگونه از توانایی کامپایلر برای استنتاج مقادیر از انواع دادهها استفاده کنید.
بخشهای متعددی از این دوره به بررسی نحوه تعامل برنامهنویسی تابعی با وضعیتهای تغییرپذیر (Mutable State) میپردازد. ما پیامدهای ترکیب توابع و وضعیتها را بررسی کرده و جایگزینهای کاملاً تابعی برای وضعیتهای تغییرپذیر، با استفاده از ساختارهای دادههای نامحدود یا برنامهنویسی واکنشی تابعی (FRP) را بررسی خواهیم کرد.
پیشنیازهای توصیه شده: شما باید حداقل یک سال تجربه برنامهنویسی داشته باشید. تسلط به Java یا #C ایدهآل است، اما تجربه در زبانهای دیگر مانند C/C++، پایتون، جاوااسکریپت یا روبی نیز کافی است. همچنین آشنایی اولیه با خط فرمان (Command Line) ضروری است. این دوره برای گذراندن پس از دوره «اصول برنامهنویسی تابعی در اسکاتلا» طراحی شده است.
سرفصل ها و درس ها
عبارات For و مونادها
For Expressions and Monads
راه اندازی ابزارها برای لینوکس
Tools Setup for Linux
راه اندازی ابزارها برای مک (OS X)
Tools Setup for Mac OS X
راه اندازی ابزارها برای ویندوز
Tools for Setup for Windows
آموزش: کار با تکالیف برنامهنویسی
Tutorial: Working on the Programming Assignments
مرور: توابع و تطبیق الگو (Pattern Matching)
Recap: Functions and Pattern Matching
مرور: مجموعهها (Collections)
Recap: Collections
درس 1.1 کوئریها با For
Lecture 1.1 - Queries with For
درس 1.2 ترجمه For
Lecture 1.2 - Translation of For
درس 1.3 تولیدکنندههای تصادفی تابعی
Lecture 1.3 - Functional Random Generators
درس 1.4 مونادها
Lecture 1.4 - Monads
ارزیابی تنبل (Lazy Evaluation)
Lazy Evaluation
درس 2.1 استقراء ساختاری روی درختها
Lecture 2.1 - Structural Induction on Trees
درس 2.2 استریمها (Streams)
Lecture 2.2 - Streams
درس 2.3 ارزیابی تنبل
Lecture 2.3 - Lazy Evaluation
درس 2.4 محاسبات با توالیهای نامحدود
Lecture 2.4 - Computing with Infinite Sequences
درس 2.5 مطالعه موردی: مسئله ریختن آب
Lecture 2.5 - Case Study: the Water Pouring Problem
برنامهنویسی هدایتشده با نوع (Type Directed)
Type-Directed Programming
توابع و وضعیت
Functions and State
درس 4.1 توابع و وضعیت
Lecture 4.1 - Functions and State
درس 4.2 هویت و تغییر
Lecture 4.2 - Identity and Change
درس 4.3 حلقهها
Lecture 4.3 - Loops
درس 4.4 مثال گسترده: شبیهسازی رویداد گسسته
Lecture 4.4 - Extended Example: Discrete Event Simulation
درس 4.5 شبیهسازی رویداد گسسته: API و کاربرد
Lecture 4.5 - Discrete Event Simulation: API and Usage
درس 4.6 شبیهسازی رویداد گسسته: پیادهسازی و تست
Lecture 4.6 - Discrete Event Simulation: Implementation and Test
اثرات بهموقع (Timely Effects)
Timely Effects
درس 5.1 مدیریت رویداد دستوری: الگوی ناظر (Observer)
Lecture 5.1 - Imperative Event Handling: The Observer Pattern
نمایش نظرات