Chapter 1. Why Scala?
Figure 1.1. A pure function that maps values of X to exactly one value of Y
Chapter 2. Getting started
Chapter 3. OOP in Scala
Figure 3.1. Class hierarchy of UpdatableCollection before class linearization
Figure 3.2. Class linearization of UpdatableCollection
Figure 3.3. Class hierarchy of Scala with subtypes and views
Chapter 4. Having fun with functional data structures
Figure 4.1. Scala collection hierarchy with three main types of collections: Set, Seq, and Map
Chapter 5. Functional programming
Figure 5.1. A pure function where each value of X is mapped to exactly one value of Y
Chapter 6. Building web applications in functional style
Figure 6.1. Kanban board with four phases.
Figure 6.2. SBT project structure
Chapter 7. Connecting to a database
Figure 7.2. The Create a new Story screen
Figure 7.3. The weKanban project with JavaScript files for drag-and-drop
Chapter 8. Building scalable and extensible components
Figure 8.1. Ordering system with three components: order, inventory, and shipping
Figure 8.2. Types classify values, and kinds classify types.
Chapter 9. Concurrency programming in Scala
Figure 9.1. A concurrent application running in a single CPU core with two threads
Figure 9.3. Actor system with hierarchy of actors
Figure 9.6. Supervisor hierarchy in Akka
Chapter 10. Building confidence with testing
Figure 10.1. The output from running ScalaCheck from the SBT prompt
Figure 10.2. Test-driven development cycle
Chapter 12. Scalable and distributed applications using Akka
Figure 12.1. Akka core modules
Figure 12.2. Two actor systems running in two different nodes
Figure 12.3. State represented in imperative programming
Figure 12.4. State represented in STM
Figure 12.4. Homepage of the Akkaoogle application