If your application source code is overly verbose, it can be a nightmare to maintain. Write concise and expressive, type-safe code in an environment that lets you build for the JVM, browser, and more.
- Expert guidance that shows you to efficiently use both object-oriented and functional programming techniques
- Understand functional programming libraries, such as Cats and Scalaz, and use them to augment your Scala development
- Perfectly balances theory and hands-on exercises, assessments, and activities
This book teaches you how to build and contribute to Scala programs, recognizing common patterns and techniques used with the language. You’ll learn how to write concise, functional code with Scala. After an introduction to core concepts, syntax, and writing example applications with scalac, you’ll learn about the Scala Collections API and how the language handles type safety via static types out-of-the-box. You’ll then learn about advanced functional programming patterns, and how you can write your own Domain Specific Languages (DSLs). By the end of the book, you’ll be equipped with the skills you need to successfully build smart, efficient applications in Scala that can be compiled to the JVM.
What you will learn
- Understand the key language syntax and core concepts for application development
- Master the type system to create scalable type-safe applications while cutting down your time spent debugging
- Understand how you can work with advanced data structures via built-in features such as the Collections library
- Use classes, objects, and traits to transform a trivial chatbot program into a useful assistant
- Understand what are pure functions, immutability, and higher-order functions
- Recognize and implement popular functional programming design patterns
Who this book is for
This is an ideal book for developers who are looking to learn Scala, and is particularly well suited for Java developers looking to migrate across to Scala for application development on the JVM.
Table of Contents
- Setting up the Development Environment
- Basic Language Features
- Scala Collections
- Scala Type System
- Functional Idioms
- Domain Specific Languages