
Applied Functional Programming in Scala
Virendra Kumar Mishra
This audiobook is narrated by a digital voice.
DESCRIPTION
Functional programming is transforming how we build robust, scalable, and maintainable software by prioritizing clarity and predictability. It emphasizes what to compute by defining...
Location:
United States
Networks:
Virendra Kumar Mishra
Digital Voice Madison G
BPB Publications
English Audiobooks
INAudio Audiobooks
Description:
This audiobook is narrated by a digital voice. DESCRIPTION Functional programming is transforming how we build robust, scalable, and maintainable software by prioritizing clarity and predictability. It emphasizes what to compute by defining expressions that map values to other values, and focuses on how to achieve a result through a sequence of statements that change program state. This book explores core functional principles like immutability, pure functions, and referential transparency. You will gain a deep understanding of the mathematical underpinnings through category theory concepts like Functors and Monads, and then apply these practically using Scala functional features and leading libraries such as Cats and ZIO. The book also covers handling effects and I/O, advanced functional patterns, and using specialized tools to build functional web, database, and streaming solutions. With real examples and patterns, it shows how these ideas can simplify code, improve testability, and increase system resilience. By the end of this book, you will have a theoretical understanding and practical proficiency in building high-quality, maintainable applications using functional programming in Scala. WHAT YOU WILL LEARN ● Implement Scala higher-order functions, currying, and Option/Either. ● Understand Functors, Monads, and their category theory relevance. ● Utilize Cats type classes for extensible functional programming. ● Build scalable applications using FP patterns. ● Manage side-effects and I/O functionally using effect systems. WHO THIS BOOK IS FOR This book is for software engineers, developers, and architects seeking to write more composable, testable, and expressive code. Readers should have a basic understanding of programming concepts, but no prior functional language experience is required. Duration - 11h 33m. Author - Virendra Kumar Mishra. Narrator - Digital Voice Madison G. Published Date - Saturday, 03 January 2026. Copyright - © 2026 BPB ©.
Language:
English
Title Page
Duration:00:00:18
Copyright Page
Duration:00:01:21
Dedication Page
Duration:00:00:10
About the Author
Duration:00:01:34
About the Reviewers
Duration:00:01:12
Acknowledgement
Duration:00:01:32
Preface
Duration:00:13:04
Table of Contents
Duration:00:11:44
1. Fundamentals of Functional Programming
Duration:00:00:05
Introduction
Duration:00:00:35
Structure
Duration:00:00:35
Objectives
Duration:00:00:27
Functional programming
Duration:00:07:31
Programming paradigm
Duration:00:01:42
Applying and composing functions
Duration:00:01:14
Declarative programming
Duration:00:00:37
Trees of expression
Duration:00:00:43
Map values
Duration:00:00:38
Sequence of imperative statements
Duration:00:00:25
Update running state of program
Duration:00:00:34
Function as first-class citizen
Duration:00:02:17
Function as literal
Duration:00:00:25
Function as input parameters
Duration:00:00:29
Function as return value
Duration:00:01:23
Functions stored in data structures
Duration:00:02:46
Pure function
Duration:00:02:05
Referential transparency
Duration:00:02:09
Immutability
Duration:00:04:20
Lazy evaluation
Duration:00:00:42
Optimization
Duration:00:03:14
User defined control structures
Duration:00:00:21
Infinite data structures
Duration:00:01:22
Function composition
Duration:00:01:56
Higher order function
Duration:00:01:33
Statements versus expressions
Duration:00:01:50
Advantages and usage of functional programming
Duration:00:00:21
Unit testing
Duration:00:00:28
Concurrency
Duration:00:01:01
Debugging
Duration:00:00:40
Easier to reason about
Duration:00:01:22
Difference between functional and object-oriented approach
Duration:00:01:30
Conclusion
Duration:00:00:26
2. Implementation of Category Theory
Duration:00:00:05
Introduction to category theory
Duration:00:01:53
Category
Duration:00:01:14
Properties
Duration:00:01:13
Laws
Duration:00:01:54
Morphism
Duration:00:01:05
Common types of morphisms
Duration:00:02:38
Composition of morphisms
Duration:00:01:01
Identity morphisms
Duration:00:00:50
Sets
Duration:00:00:17
Usage
Duration:00:02:05
Semigroups
Duration:00:00:18
Definition
Duration:00:00:42
Monoid
Duration:00:00:23
Functors
Duration:00:00:43
Applicative functor
Duration:00:01:36
Foldable
Duration:00:01:02
Traversal
Duration:00:02:25
Monad
Duration:00:02:05
Reader monad
Duration:00:00:47
Writer monad
Duration:00:00:32
State monad
Duration:00:01:32
Optics
Duration:00:02:25
3. Introduction to Scala
Duration:00:00:04
Scala
Duration:00:01:09
Scala as object-oriented
Duration:00:00:22
Scala as functional
Duration:00:00:39
Scala as statically typed
Duration:00:00:51
Scala as extensible
Duration:00:00:34
Scala interoperates with Java
Duration:00:00:27
Hands-on Scala
Duration:00:01:02
Scala installation
Duration:00:01:37
Scala IDE
Duration:00:01:36
Scala for functional programming
Duration:00:01:38
Function as first-class values
Duration:00:03:02
Function returned as output
Duration:00:01:32
Lambda functions
Duration:00:02:17
Closures
Duration:00:05:10
Currying
Duration:00:02:18
Partial applied function
Duration:00:02:28
Function implementation
Duration:00:01:28
Option[T]
Duration:00:02:11
Try[T]
Duration:00:01:44
Either [+A, +B]
Duration:00:02:51
4. Understanding Cats
Duration:00:00:04
Understanding Cats
Duration:00:06:54
Type classes
Duration:00:02:37
Functor
Duration:00:03:43
Invariant
Duration:00:00:43
Invariant usage
Duration:00:02:57
InvariantMonoidal
Duration:00:01:32
Contravariant
Duration:00:00:30
Contravariant usage
Duration:00:04:20
Bifunctor
Duration:00:03:24
Applicative
Duration:00:03:29
Bifoldable
Duration:00:04:45
Arrow
Duration:00:04:23
Semigroup
Duration:00:03:53
SemigroupK
Duration:00:03:47
MonoidK
Duration:00:03:17
Traverse
Duration:00:03:49
Non-empty traverse
Duration:00:01:53
Alternative
Duration:00:03:11
Comonad
Duration:00:05:55
Bimonad
Duration:00:01:50
Eq
Duration:00:03:43
Show
Duration:00:03:16
Parallel
Duration:00:02:04
Reducible
Duration:00:03:41
Data types
Duration:00:02:48
Transformers
Duration:00:04:22
Free implementations
Duration:00:03:28
Cats testing
Duration:00:05:01
5. Understanding ZIO
Duration:00:00:04
Introduction to ZIO
Duration:00:03:53
ZIO type aliases
Duration:00:05:20
UIO[A]
Duration:00:02:31
URIO[R, A]
Duration:00:03:40
Task[A]
Duration:00:04:13
RIO[R, A]
Duration:00:04:45
IO[E, A]
Duration:00:05:20
ZIO control flow
Duration:00:00:34
ZIO Conditional flow
Duration:00:00:40
When expression
Duration:00:00:44
Unless expression
Duration:00:00:16
ifZIO expression
Duration:00:00:30
ZIO loop flow
Duration:00:00:22
Loop expression
Duration:00:00:52
Iterate expression
Duration:00:00:42
Foreach expression
Duration:00:01:11
ZIO error management
Duration:00:02:02
Error recovery
Duration:00:02:21
Error accumulation
Duration:00:00:26
Using ZIO.collectAllParN for error accumulation
Duration:00:01:33
Using ZIO.collectAllPar for error accumulation
Duration:00:01:01
Error channel operators
Duration:00:03:48
ZIO layer
Duration:00:00:25
Basics of ZLayer
Duration:00:00:32
Construction
Duration:00:00:36
Composition
Duration:00:00:37
Providing environment
Duration:00:00:29
Using services
Duration:00:00:26
Lifecycle management
Duration:00:00:34
ZIO concurrency
Duration:00:00:19
ZIO fibers
Duration:00:03:46
ZIO synchronization
Duration:00:03:50
ZIO STM
Duration:00:02:58
STM composition
Duration:00:00:36
Fiber-scoped transactions
Duration:00:00:59
ZIO resource management
Duration:00:03:59
ZIO testing
Duration:00:00:31
Test environments
Duration:00:01:03
Using zio.test package
Duration:00:01:37
Running tests
Duration:00:01:06
Asynchronous testing
Duration:00:00:16
Mocking dependencies
Duration:00:00:33
6. Effects Implementation in Pure Way
Duration:00:00:04
Effects and side effects
Duration:00:03:53
Side effects as blocker
Duration:00:05:44
Handling side effects
Duration:00:03:05
Exceptions as side effects
Duration:00:02:30
Functional exception handling
Duration:00:03:27
I/O as side effects
Duration:00:02:18
Functional I/O implementations
Duration:00:05:07
Cats Effects
Duration:00:03:17
ZIO effects
Duration:00:02:27
7. Functional Pattern Implementation
Duration:00:00:05
Domain-specific language
Duration:00:02:36
Using DSL to solve problem statement
Duration:00:01:29
Initial encoding
Duration:00:03:26
Tagless final
Duration:00:06:23
Free functor
Duration:00:00:49
Applications
Duration:00:00:27
Free monad
Duration:00:01:02
Free monad in category theory
Duration:00:04:07
Free applicative
Duration:00:00:56
Free applicative in category theory
Duration:00:03:21
8. Functional Tools
Duration:00:00:03
Monocle for optics
Duration:00:05:33
Setting up dependencies
Duration:00:02:58
Monix for asynchrony
Duration:00:02:47
Sub projects
Duration:00:02:03
Caliban
Duration:00:05:01
GraphQL schema
Duration:00:01:40
Setting up server
Duration:00:02:20
Circe
Duration:00:02:51
Working with Circe
Duration:00:02:06
ZIO scheduling
Duration:00:03:22
PureConfig
Duration:00:04:56
Functional Streams for Scala
Duration:00:03:59
FS2 sub projects
Duration:00:04:35
Cats collection
Duration:00:01:46
Cats retry
Duration:00:01:26
Setting dependency
Duration:00:03:57
9. Web Implementation in Functional Way
Duration:00:00:05
Functional web
Duration:00:05:55
Functional web implementation
Duration:00:05:34
Advantages of functional web
Duration:00:02:54