کتاب Functional and Concurrent Programming: Core Concepts and Features [انگلیسی]

لینک آمازون: https://amazon.com/dp/B0B8S2QNM9

درباره کتاب

Leverage Modern Language Constructs to Write High-Quality Code Faster
The functional and concurrent programming language features supported by modern languages can be challenging, even for experienced developers. These features may appear intimidating to OOP programmers because of a misunderstanding of how they work. Programmers first need to become familiar with the abstract concepts that underlie these powerful features.
In Functional and Concurrent Programming, Michel Charpentier introduces a core set of programming language constructs that will help you be productive in a variety of programming languages—now and in the future. Charpentier illustrates key concepts with numerous small, focused code examples, written in Scala, and with case studies that provide a thorough grounding in functional and concurrent programming skills. These skills will carry from language to language—including the most recent incarnations of Java. Using these features will enable developers and programmers to write high-quality code that is easier to understand, debug, optimize, and evolve.
Key topics covered include:

Recursion and tail recursionPattern matching and algebraic datatypesPersistent structures and immutabilityHigher-order functions and lambda expressionsLazy evaluation and streamsThreads and thread poolsAtomicity and lockingSynchronization and thread-safe objectsLock-free, non-blocking patternsFutures, promises, and functional-concurrent programming

As a bonus, the book includes a discussion of common typing strategies used in modern programming languages, including type inference, subtyping, polymorphism, type classes, type bounds, and type variance.
Most of the code examples are in Scala, which includes many of the standard features of functional and concurrent programming; however, no prior knowledge of Scala is assumed. You should be familiar with concepts such as classes, methods, objects, types, variables, loops, and conditionals and have enough programming experience to not be distracted by simple matters of syntax.


From the Publisher

About the Code Examples

The primary value of this book lies in its code illustrations. To a large extent, the text is there to support the code, more than the other way around. The code examples tend to be short and focused on the concepts they aim to illustrate. In particular, very few examples are designed to perform the specific tasks you need to solve in your daily programming activities.

Why Scala?

It is feature-rich, making it possible to illustrate many concepts without switching languagesScala was introduced fairly recently and was carefully (and often beautifully) designedThe syntax is quite conventional and easy to follow for most programmers without prior exposure to the language

ASIN ‏ : ‎ B0B8S2QNM9
Publisher ‏ : ‎ Addison-Wesley Professional
Accessibility ‏ : ‎ Learn more
Publication date ‏ : ‎ November 16, 2022
Edition ‏ : ‎ 1st
Language ‏ : ‎ English
File size ‏ : ‎ 38.8 MB
Simultaneous device usage ‏ : ‎ Up to 5 simultaneous devices, per publisher limits
Screen Reader ‏ : ‎ Supported
Enhanced typesetting ‏ : ‎ Enabled
X-Ray ‏ : ‎ Not Enabled
Word Wise ‏ : ‎ Not Enabled
Print length ‏ : ‎ 528 pages
ISBN-13 ‏ : ‎ 978-0137466634
Page Flip ‏ : ‎ Enabled
Reading age ‏ : ‎ 18 years and up
Best Sellers Rank: #1,945,071 in Kindle Store (See Top 100 in Kindle Store) #100 in Functional Software Programming #103 in Parallel Computer Programming #296 in Java Computer Programming
Customer Reviews: 4.7 4.7 out of 5 stars 11 ratings var dpAcrHasRegisteredArcLinkClickAction; P.when(‘A’, ‘ready’).execute(function(A) { if (dpAcrHasRegisteredArcLinkClickAction !== true) { dpAcrHasRegisteredArcLinkClickAction = true; A.declarative( ‘acrLink-click-metrics’, ‘click’, { “allowLinkDefault”: true }, function (event) { if (window.ue) { ue.count(“acrLinkClickCount”, (ue.count(“acrLinkClickCount”) || 0) + 1); } } ); } }); P.when(‘A’, ‘cf’).execute(function(A) { A.declarative(‘acrStarsLink-click-metrics’, ‘click’, { “allowLinkDefault” : true }, function(event){ if(window.ue) { ue.count(“acrStarsLinkWithPopoverClickCount”, (ue.count(“acrStarsLinkWithPopoverClickCount”) || 0) + 1); } }); });

, , , , , , ,