Externally indexed torrent
If you are the original uploader, contact staff to have it moved to your account
Textbook in PDF format
Discover the power that functional programming brings to your Scala code. This international bestseller has been revised with new exercises, annotations, and full coverage of Scala 3.
In Functional Programming in Scala, Second Edition you will learn how to:
Recognize and write purely functional code
Work with errors without using exceptions
Work with state and concurrency
Interact with functional structures that define common behaviors
Write code that performs I/O without sacrificing functional programming
The first edition of Functional Programming in Scala has helped over 30,000 developers discover the power of functional programming. This second edition is fully updated to Scala 3 and the latest standards of FP. Inside, you’ll find a serious tutorial for programmers looking to apply functional programming to improve their everyday coding practices. You’ll progress from the basics to advanced topics in a logical, concise, and clear progression. Throughout, concrete examples and exercises open up the world of functional programming.
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 a popular 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.
We’ll provide a more precise definition of side effects later in this chapter, but consider what programming would be like without the ability to do these things, or with significant restrictions on when and how these actions can occur. It may be difficult to imagine. How is it even possible to write useful programs at all? If we can’t reassign variables, how do we write simple programs like loops? What about working with data that changes, or handling errors without throwing exceptions? How can we write programs that must perform I/O, like drawing to the screen or reading from a file?
The answer is that functional programming is a restriction on how we write programs, but not on what programs we can express. Over the course of this book, we’ll learn how to express all of our programs without side effects, and that includes programs that perform I/O, handle errors, and modify data. We’ll learn how following the discipline of FP is tremendously beneficial because of the increase in modularity that we gain from programming with pure functions. Because of their modularity and lack of side effects, pure functions are easier to test, reuse, parallelize, generalize, and reason about. Furthermore, pure functions are much less prone to bugs.
about the book
Functional Programming in Scala, Second Edition teaches you functional programming from first principles using the powerful Scala language. You’ll develop the unique skills you need to start thinking functionally through hands-on exercises and coding challenges. New to the revised second edition, each exercise comes with extensive annotations to help you understand functional programming in-depth. You’ll even learn how to build your own Scala functional library that’s perfectly adapted to your needs. You’ll soon be writing Scala code that’s easier to read, easier to reuse, better for concurrency, and less prone to bugs and errors.
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