Video description
In Video Editions the narrator reads the book while the content, figures, code listings, diagrams, and text appear on the screen. Like an audiobook that you can also watch as a video.
"Leads to deep insights into the nature of computation."
From the Foreword by Martin Odersky, Creator of Scala
Functional Programming in Scala is a serious tutorial for programmers looking to learn FP and apply it to the everyday business of coding. This Video Editions book guides readers from basic techniques to advanced topics in a logical, concise, and clear progression. In it, you'll find concrete examples that open up the world of functional programming.
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.
Inside:- Functional programming concepts
- The whys and hows of FP
- How to write multicore programs
- Checks for understanding
Paul Chiusano and Rúnar Bjarnason are recognized experts in functional programming with Scala and are core contributors to the Scalaz library.
The definitive guide to functional programming for Scala and Java 8 developers!
William E. Wheeler, TekSystems
Shows you the approach and mindset to raise your Scala way beyond 'a better Java'.
Fernando Dobladez, Code54
NARRATED BY MARK THOMAS
Table of contents
- Chapter 1. What is functional programming?
- Chapter 1. A functional solution: removing the side effects
- Chapter 1. Exactly what is a (pure) function?
- Chapter 1. Referential transparency, purity, and the substitution model
- Chapter 2. Getting started with functional programming in Scala
- Chapter 2. Running our program
- Chapter 2. Higher-order functions: passing functions to functions
- Chapter 2. Polymorphic functions: abstracting over types
- Chapter 2. Following types to implementations
- Chapter 3. Functional data structures
- Chapter 3. Pattern matching
- Chapter 3. Data sharing in functional data structures
- Chapter 3. Recursion over lists and generalizing to higher-order functions
- Chapter 3. Trees
- Chapter 4. Handling errors without exceptions
- Chapter 4. Possible alternatives to exceptions
- Chapter 4. The Option data type
- Chapter 4. Option composition, lifting, and wrapping exception-oriented APIs
- Chapter 4. The Either data type
- Chapter 5. Strictness and laziness
- Chapter 5. An extended example: lazy lists
- Chapter 5. Separating program description from evaluation
- Chapter 5. Infinite streams and corecursion
- Chapter 6. Purely functional state
- Chapter 6. Making stateful APIs pure
- Chapter 6. A better API for state actions
- Chapter 6. A general state action data type
- Chapter 7. Purely functional parallelism
- Chapter 7. A data type for parallel computations
- Chapter 7. Combining parallel computations
- Chapter 7. Explicit forking
- Chapter 7. Picking a representation
- Chapter 7. Refining the API
- Chapter 7. The algebra of an API
- Chapter 7. The law of forking
- Chapter 7. A fully non-blocking Par implementation using actors
- Chapter 7. Refining combinators to their most general form
- Chapter 8. Property-based testing
- Chapter 8. Choosing data types and functions
- Chapter 8. The meaning and API of generators
- Chapter 8. Test case minimization
- Chapter 8. Using the library and improving its usability
- Chapter 8. Testing higher-order functions and future directions
- Chapter 9. Parser combinators
- Chapter 9. Designing an algebra, first
- Chapter 9. A possible algebra
- Chapter 9. Handling context sensitivity
- Chapter 9. Error reporting
- Chapter 9. Controlling branching and backtracking
- Chapter 9. Implementing the algebra
- Chapter 9. Failover and backtracking
- Chapter 10. Monoids
- Chapter 10. Folding lists with monoids
- Chapter 10. Example: Parallel parsing
- Chapter 10. Foldable data structures
- Chapter 11. Monads
- Chapter 11. Monads: generalizing the flatMap and unit functions
- Chapter 11. Monadic combinators
- Chapter 11. Just what is a monad?
- Chapter 11. The State monad and partial type application
- Chapter 12. Applicative and traversable functors
- Chapter 12. The difference between monads and applicative functors
- Chapter 12. The advantages of applicative functors
- Chapter 12. The applicative laws
- Chapter 12. Traversable functors
- Chapter 12. Uses of Traverse
- Chapter 12. Traversal fusion
- Chapter 13. External effects and I/O
- Chapter 13. A simple IO type
- Chapter 13. Benefits and drawbacks of the simple IO type
- Chapter 13. Avoiding the StackOverflowError
- Chapter 13. A more nuanced IO type
- Chapter 13. Non-blocking and asynchronous I/O
- Chapter 13. Why the IO type is insufficient for streaming I/O
- Chapter 14. Local effects and mutable state
- Chapter 14. A data type to enforce scoping of side effects
- Chapter 14. Running mutable state actions
- Chapter 14. Purity is contextual
- Chapter 15. Stream processing and incremental I/O
- Chapter 15. Simple stream transducers
- Chapter 15. Composing and appending processes
- Chapter 15. An extensible process type
- Chapter 15. Ensuring resource safety
- Chapter 15. Multiple input streams
- Chapter 15. Applications
Product information
- Title: Functional Programming in Scala video edition
- Author(s):
- Release date: September 2014
- Publisher(s): Manning Publications
- ISBN: None
You might also like
book
Functional Programming in Scala
Functional Programming in Scala is a serious tutorial for programmers looking to learn FP and apply …
book
Functional Programming in Scala, Second Edition
This international bestseller has been revised with new exercises, annotations, and full coverage of Scala 3. …
book
Get Programming with Scala
The perfect starting point for your journey into Scala and functional programming. In Get Programming in …
book
Functional Programming Patterns in Scala and Clojure
Solve real-life programming problems with a fraction of the code that pure object-oriented programming requires. Use …