Summary
Functional Programming in Scala is a serious tutorial for programmers
looking to learn FP and apply it to the everyday business of coding. The
book guides readers from basic techniques to advanced topics in a
logical, concise, and clear progression. In it, you'll find concrete
examples and exercises that open up the world of functional programming.
Purchase of the print book includes a free eBook in PDF, Kindle, and
ePub formats from Manning Publications.
About the Technology
Functional programming (FP) is a style of software development
emphasizing functions that don't depend on program state. Functional
code is easier to test and reuse, simpler to parallelize, and less prone
to bugs than other code. Scala is an emerging JVM language that offers
strong support for FP. Its familiar syntax and transparent
interoperability with Java make Scala a great place to start learning
FP.
About the Book
Functional Programming in Scala is a serious tutorial for programmers
looking to learn FP and apply it to their everyday work. The book guides
readers from basic techniques to advanced topics in a logical, concise,
and clear progression. In it, you'll find concrete examples and
exercises that open up the world of functional programming.
This book assumes no prior experience with functional programming. Some
prior exposure to Scala or Java is helpful.
What's Inside
-
Functional programming concepts
-
The whys and hows of FP
-
How to write multicore programs
-
Exercises and checks for understanding
About the Authors
Paul Chiusano and Rúnar Bjarnason are recognized experts in
functional programming with Scala and are core contributors to the
Scalaz library.
Table of Contents
- What is functional programming?
- Getting started with functional programming in Scala
- Functional data structures
- Handling errors without exceptions
- Strictness and laziness
- Purely functional state
- Purely functional parallelism
- Property-based testing
- Parser combinators
- Monoids
- Monads
- Applicative and traversable functors
- External effects and I/O
- Local effects and mutable state
- Stream processing and incremental I/O