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 languagesnow 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 languageincluding 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 recursion
Pattern matching and algebraic datatypes
Persistent structures and immutability
Higher-order functions and lambda expressions
Lazy evaluation and streams
Threads and thread pools
Atomicity and locking
Synchronization and thread-safe objects
Lock-free, non-blocking patterns
Futures, promises, and functional-concurrent programming