2nd Edition. — Springer International Publishing AG, 2018. — 530 p. — ISBN: 978-3-319-75770-4.
Scala is now an established programming language developed by Martin Oderskey and his team at the EPFL. The name Scala is derived from Sca(lable) La(nguage). Scala is a multi-paradigm language, incorporating object oriented approaches with functional programming.
Although some familiarity with standard computing concepts is assumed (such as the idea of compiling a program and executing this compiled from etc.) and with basic procedural language concepts (such as variables and allocation of values to these variables) the early chapters of the book do not assume any familiarity with object orientation nor with functional programming These chapters also step through other concepts with which the reader may not be familiar (such as list processing).
From this background, the book provides a practical introduction to both object and functional approaches using Scala. These concepts are introduced through practical experience taking the reader beyond the level of the language syntax to the philosophy and practice of object oriented development and functional programming.
Students and those actively involved in the software industry will find this comprehensive introduction to Scala invaluable.
Elements of Object Orientation
Why Object Orientation?
Constructing an Object-Oriented System
Functional Programming
Scala Background
A Little Scala
Scala Building Blocks
Scala Classes
Scala Methods
Packages and Encapsulation
Building a Class
Classes, Inheritance and Abstraction
Objects and Instances
Value Classes
Scala Constructs
Control and Iteration
Traits
Further Traits
Arrays
Tuples
Functional Programming in Scala
Higher-Order Functions
Partially Applied Functions and Currying
Scala Collections Framework
Immutable Lists and Maps
Immutable and Mutable Collection Packages
Type Parameterisation
Further Language Constructs
Exception Handling
Akka Actors
Further Akka Actors
Scala and JDBC Database Access
Scala Style Database Access
Slick: Functional Relational Mapping for Scala
Testing
Scala Testing
Play Framework
RESTful Services
Scalaz
GUIs in Scala Swing
User Input in Scala Swing
Scala Build Tools
Scala & Java Interoperability