Product details
- Publisher : CreateSpace Independent Publishing Platform (December 7, 2017)
- Language : English
- Paperback : 728 pages
- ISBN-10 : 1979788782
-
ISBN-13 : 978-1979788786
کتاب Functional Programming, Simplified: (Scala Edition)
Winter, 2021 Update: The book is currently on sale for $29.99 (USD). The regular price is $39.99.
While he’s known for writing the “Scala Cookbook” for O’Reilly and the “Scala Book” for the official Scala website, this book is actually his most popular, helping thousands of developers to understand functional programming!
If you’ve had trouble trying to learn Functional Programming (FP), you’re not alone. In this book, Alvin Alexander — author of the Scala Cookbook and former teacher of Java and Object-Oriented Programming (OOP) classes — writes about his own problems in trying to understand FP, and how he finally conquered it.
What he originally learned is that experienced FP developers are driven by two goals: to use only immutable values, and write only pure functions. What he later learned is that they have these goals as the result of another larger goal: they want all of their code to look and work just like algebra.
While that sounds simple, it turns out that these goals require them to use many advanced Scala features — which they often use all at the same time. As a result, their code can look completely foreign to novice FP developers. As Mr. Alexander writes, “When you first see their code it’s easy to ask, ‘Why would anyone write code like this?’”
Mr. Alexander answers that “Why?” question by explaining the benefits of writing pure functional code. Once you understand those benefits — your motivation for learning FP — he shares five rules for programming in the book:
- All fields must be immutable (‘val’ fields).
- All functions must be pure functions.
- Null values are not allowed.
- Whenever you use an ‘if’ you must also use an ‘else’.
- You won’t create OOP classes that encapsulate data and behavior; instead you’ll design data structures using Scala ‘case’ classes, and write pure functions that operate on those data structures.
In the book you’ll see how those five, simple rules naturally lead you to write pure, functional code that reads like algebra. He also shares one more Golden Rule for learning:
- Always ask “Why”?
Lessons in the book include:
- How and why to write only pure functions
- Why pure function signatures are much more important than OOP method signatures
- Why recursion is a natural tool for functional programming, and how to write recursive algorithms
- Because the Scala ‘for’ expression is so important to FP, dozens of pages explain the details of how it works
- In the end you’ll see that monads aren’t that difficult because they’re a natural extension of the Five Rules
- The book finishes with lessons on FP data modeling, and two main approaches for organizing your pure functions
As Mr. Alexander writes, “In this book I take the time to explain all of the concepts that are used to write FP code in Scala. As I learned from my own experience, once you understand the Five Rules and the small concepts, you can understand Scala/FP.”
Please note that because of the limits on how large a printed book can be, the paperback version does not include all of the chapters that are in the Kindle eBook. The following lessons are not in the paperback version:
- Grandma’s Cookies (a story about pure functions)
- The ScalaCheck lessons
- The Type Classes lessons
- The appendices
Because those lessons didn’ fit in the print version, they have been made freely available online.
(Alvin Alexander (alvinalexander.com) wrote the popular Scala Cookbook for O’Reilly, and also self-published two other books, How I Sold My Business: A Personal Diary, and A Survival Guide for New Consultants.)
منابع کتاب کتاب Functional Programming, Simplified: (Scala Edition)
به روز رسانی زمستان، 2021: کتاب در حال حاضر با قیمت 29.99 دلار (دلار آمریکا) به فروش می رسد. قیمت معمولی 39.99 دلار است.
در حالی که او به خاطر نوشتن "کتاب آشپزی اسکالا" برای اوریلی و "کتاب اسکالا" برای وب سایت رسمی اسکالا شناخته شده است، این کتاب در واقع محبوب ترین کتاب او است و به هزاران توسعه دهنده کمک می کند تا برنامه نویسی کاربردی را درک کنند!
اگر برای یادگیری برنامه نویسی کاربردی (FP) با مشکل مواجه شده اید، تنها نیستید. در این کتاب، آلوین الکساندر - نویسنده کتاب آشپزی اسکالا و معلم سابق کلاس های جاوا و برنامه نویسی شی گرا (OOP) - در مورد مشکلات خود در تلاش برای درک FP و چگونگی غلبه بر آن در نهایت می نویسد.
چیزی که او در ابتدا آموخت این بود که توسعه دهندگان با تجربه FP با دو هدف هدایت می شوند: استفاده از مقادیر تغییرناپذیر و نوشتن فقط توابع خالص. چیزی که او بعداً آموخت این است که آنها این اهداف را به عنوان نتیجه یک هدف بزرگتر دیگر دارند: آنها می خواهند همه کدهایشان درست مانند جبر به نظر برسد و کار کند.
در حالی که ساده به نظر می رسد، مشخص می شود که این اهداف آنها را ملزم به استفاده از بسیاری از ویژگی های پیشرفته Scala می کند - که اغلب آنها از همه به طور همزمان استفاده می کنند. در نتیجه، کد آنها می تواند برای توسعه دهندگان FP تازه کار کاملاً خارجی به نظر برسد. همانطور که آقای الکساندر می نویسد، "وقتی برای اولین بار کد آنها را می بینید، آسان است که بپرسید، "چرا کسی باید اینگونه کد بنویسد؟"
آقای اسکندر پاسخ می دهد که "چرا؟" با توضیح مزایای نوشتن کد تابعی خالص سوال کنید. هنگامی که این مزایا - انگیزه شما برای یادگیری FP - را درک کردید، او پنج قانون برنامه نویسی را در کتاب به اشتراک می گذارد:
- همه فیلدها باید تغییرناپذیر باشند (فیلدهای 'val').
- همه توابع باید توابع خالص باشند.
- مقادیر تهی مجاز نیستند.
- هر زمان که از "اگر" استفاده می کنید، باید از "دیگر" نیز استفاده کنید.
- شما کلاس های OOP ایجاد نمی کنید که داده ها و رفتار را محصور کنند. در عوض، ساختارهای داده را با استفاده از کلاسهای Scala 'case' طراحی میکنید و توابع خالصی را مینویسید که روی آن ساختارهای داده کار میکنند.
در این کتاب خواهید دید که چگونه آن پنج قانون ساده به طور طبیعی شما را به نوشتن کدهای کاربردی و خالص که مانند جبر خوانده می شود، سوق می دهند. او همچنین یک قانون طلایی دیگر را برای یادگیری به اشتراک می گذارد:
- همیشه بپرسید "چرا"؟
درس های کتاب عبارتند از:
- چگونه و چرا فقط توابع خالص بنویسیم
- چرا امضاهای تابع خالص بسیار مهمتر از امضاهای متد OOP هستند
- چرا بازگشت یک ابزار طبیعی برای برنامه نویسی تابعی است و نحوه نوشتن الگوریتم های بازگشتی
- از آنجایی که عبارت Scala 'for' برای FP بسیار مهم است، ده ها صفحه جزئیات نحوه عملکرد آن را توضیح می دهند.
- در پایان خواهید دید که مونادها آنقدرها هم سخت نیستند، زیرا آنها بسط طبیعی پنج قانون هستند.
- این کتاب با درسهایی در مورد مدلسازی دادههای FP و دو رویکرد اصلی برای سازماندهی عملکردهای خالص شما به پایان میرسد
همانطور که آقای الکساندر می نویسد، "در این کتاب من برای توضیح همه مفاهیمی که برای نوشتن کد FP در اسکالا استفاده می شود، وقت می گذارم. همانطور که از تجربه خودم آموختم، هنگامی که پنج قانون و مفاهیم کوچک را درک کردید، می توانید Scala/FP را درک کنید.
لطفاً توجه داشته باشید که به دلیل محدودیتهایی که در مورد حجم یک کتاب چاپی وجود دارد، نسخه شومیز شامل تمام فصلهایی که در کتاب الکترونیکی Kindle وجود دارد، نمیشود. درس های زیر می در نسخه جلد کاغذی:
- کوکی های مادربزرگ (داستانی در مورد عملکردهای خالص)
- دروس ScalaCheck
- دروس کلاس های نوع
- ضمیمه ها
از آنجایی که این درس ها در نسخه چاپی مناسب نبودند، به صورت رایگان در دسترس آنلاین قرار گرفتند.
(آلوین الکساندر (alvinalexander.com) کتاب آشپزی محبوب اسکالا را برای اوریلی نوشت و همچنین دو کتاب دیگر را منتشر کرد، چگونه تجارتم را فروختم : یک دفتر خاطرات شخصی و راهنمای بقا برای مشاوران جدید .)
ارسال نظر درباره کتاب Functional Programming, Simplified: (Scala Edition)