Title Page Copyright and Credits Learn Scala Programming Dedication Packt Upsell Why subscribe? Packt.com Contributors About the author About the reviewers Packt is searching for authors like you Preface Who this book is for What this book covers To get the most out of this book Download the example code files Download the color images Conventions used Get in touch Reviews An Introduction to Scala 2.13 Technical requirements Introduction to Scala 2.13 New features of Scala 2.13 Optional parsing for string literals Products can report the names of their element Added methods for chaining operations Automatic Resource Management The Scala 2.13 Collection Library IterableOnceOps IterableOps WithFilter IterableFactory View Set Map SortedMap HashMap MultiMap SeqMap Seq IndexedSeq LinearSeq Buffers Scala Collection Contrib library Summary Questions Further reading Understanding Types in Scala Technical requirements Understanding types Ways to create a type Literal types Compound (intersection) types Type constraints Scala's types hierarchy and special types Type inference Path-dependent types Types – all the way down Type parameters Type members Generalized type constraints Infix types Variance Existential types Higher kinded types Type lambdas Using types to define domain constraints Phantom types Self-recursive types Summary Questions Further reading Deep Dive into Functions Technical requirements Ways to define a function Function as a method Local functions Closures Partial application and functions Function literals  Currying Polymorphism and higher order functions Polymorphic functions Higher-order functions Recursion and trampolining Recursion Tail recursion Trampolining Object-oriented aspects of functions Functions are traits Partial functions Function object Extending functions Summary Questions Further reading Getting to Know Implicits and Type Classes Technical requirements Types of implicits Implicit conversions Implicit parameters Implicit classes View and context bounds View bounds Context bounds Type classes Type classes Type class recursive resolution Type class variance Implicit scope resolution Lexical scope Implicit scope Static overloading rules Summary Questions Further reading Property-Based Testing in Scala Technical requirements Introduction to property-based testing From unit tests to properties ScalaCheck Properties Types of properties Commutativity Associativity Identity Invariants Idempotence Induction  Symmetry Test Oracle Defining a property Checking property Combining properties Generators Existing generators Combining generators Shrinkers Summary Questions Exploring Built-In Effects Technical requirements Introduction to effects Option Creating an Option Reading from an Option Option as an effect Either Creating Either Reading values from Either Either as an Effect Try Creating a Try Reading values from Try Try as an effect Future Creating a Future Reading values from a Future Future as an effect Summary Questions Understanding Algebraic Structures Technical requirements Introduction to abstract algebraic structures Semigroup Monoid Foldable Group Summary Questions Further reading Dealing with Effects Technical requirements Functor Applicative Traversable Summary Questions Further reading Familiarizing Yourself with Basic Monads Technical requirements Introduction to monads Id Monad State monad Reader monad Writer monad Summary Questions Further reading A Look at Monad Transformers and Free Monad Technical requirements Combining monads Monad transformers Monad transformers stacks Free monads Summary Questions Further reading An Introduction to the Akka and Actor Models Technical requirements Introduction to the actor model Akka basics Defining actors The life cycle of an actor Dispatchers Terminating actors The ask pattern Changing an actor's behavior using context Advanced topics Akka FSM Akka remoting The actor path Actor supervision Testing actors Running the application Summary Questions Further reading Building Reactive Applications with Akka Typed Technical requirements Introduction The typed approach and the differences between Akka untyped Example actor system First example Akka Typed basics Creating an actor Stopping an actor Discovering an actor Akka Typed – beyond the basics Life cycle of an actor Supervision Watching an actor Timers Stashing Combining behaviors Cluster Testing Dependencies and setup Synchronous testing Asynchronous testing Running the application Summary Basics of Akka Streams Technical requirements Introduction to Akka Streams Reactive Streams and backpressure Akka Streams Setup and dependency Essential concepts Structure of the example Basics of Akka Streams Sources and sinks Flows  Graphs Logging Materialization Handling failure Testing Akka TestKit Streams TestKit Running the application Summary Questions Further reading Project 1 - Building Microservices with Scala Technical requirements Essentials of microservices Building a microservice with http4s and doobie Project structure FS2 – functional streams Database migrations Configuration with PureConfig Doobie – functional database access http4s – streaming HTTP Bringing it all together Testing Running the application Building microservices with Akka-HTTP and Akka Persistence Project structure Event-Sourcing and CQRS Configuring Akka Persistence Domain models The persistent actor Akka-HTTP Bringing it all together Testing Running the application Summary Questions Further reading Project 2 - Building Microservices with Lagom Technical requirements Why Lagom? Project overview and setup The bakery project Project setup Lagom's APIs Service API Persistence API Message Broker API Service API from the client side Running the application Testing Summary Questions Further reading Preparing the Environment and Running Code Samples Installing software Installing Java Virtual Machine (JVM) Installing SBT Working with the code Getting the code Working with the source code Using the SBT console Using REPL Assessments Chapter 1 Chapter 2 Chapter 3 Chapter 4 Chapter 5 Chapter 6 Chapter 7 Chapter 8 Chapter 9 Chapter 10 Chapter 11 Chapter 12 Chapter 13 Chapter 14 Chapter 15 Other Books You May Enjoy Leave a review - let other readers know what you think