Log In
Join
for free
Back To Course Home
Using fp-ts for Functional Programming in TypeScript
0% completed
Introduction to Functional Programming
Before We Dive Deeper
Why Functional Programming?
Why JavaScript?
Why TypeScript?
Functional Programming with TypeScript
Coding Challenge: Rewriting Function with Better Types
Solution Review: Rewriting Function with Better Types
Quiz on Types
Tidbits: Some Useful JavaScript and TypeScript
Setting Up TypeScript
Creating Functions in JavaScript
Backticks for Easy Printing
The Ternary Operator
Discriminating Unions
Summary: JavaScript and TypeScript Tidbits
Coding Challenge: Create Algebraic Data Type
Solution Review: Create Algebraic Data Type
Coding Challenge: Rewriting Code as an Expression
Solution Review: Rewriting Code as an Expression
Quiz: Tidbits of JavaScript and TypeScript
First Steps with Functional Programming
Introduction to Functional Programming
Writing Functional Code
Writing Functional Programs
Currying
Combining Currying and Composition
Problems with Currying and Composition
Monads
Advantages of Monads
Briefly about Types
Summary: First Steps with Functional Programming
Coding Challenge: Higher-Order Function
Solution Review: Higher-Order Function
Coding Challenge: Using Option in Function
Solution Review: Using Option in Function
Quiz: First Steps with Functional Programming
Our First Project: User Registration
Defining Our Types
Validation with Either
Before We Continue: Either or Validation?
Creating our User with Lifting
Bringing it Together
Cope with Changing Business Requirements
Summary: User Registration Project
Coding Challenge: Adding a Check
Solution Review: Adding a Check
Coding Challenge: Working with Either and Pipe
Solution Review: Working with Either and Pipe
Quiz: User Registration Project
Deploying a Monitoring Application
AWS Lambda and SAM
Setting Up Our Project
Using the Cloudwatch SDK
Monads for Asynchronous Behavior
Transforming Our Data
Synchronous Behavior and IO
Bringing it All Together
Extensions
A Small Aside: Memoization
Summary: Deploying a Monitoring Application
Coding Challenge: Working with Flow
Solution Review: Working with Flow
Coding Challenge: Working with TaskEither
Solution Review: Working with TaskEither
Quiz: Deploying a Monitoring Application
Testing
The Types of Testing
Test-Driven Development
FP and Testing
Property-based Testing
Summary: Testing
Coding Challenge: Writing a Parameterized Test
Solution Review: Writing a Parameterized Test
Quiz: Testing
Once More unto the Breach: Our Final Application
Setting Up the Environment of Our Final Application
Writing Our First Create Lambda Code
Core Logic of the Create Lambda
Bringing it Together
Creating the Retrieve Lambda
DynamoDB
Adding the Real Database
Summary: Final Application
Coding Challenge: Using Sequence in Function
Solution Review: Using Sequence in Function
Quiz: Testing
Expanding our Reservation Application
Using the Reader Monad to Gather Config
Using State
Better Error Types
Restaurants and sequenceS
Choosing Configs
Exploring Some More Ideas
Summary: Expanding our Reservation Application
Coding Challenge: Using Reader Monad in Function
Solution Review: Using Reader Monad in Function
Quiz Yourself about Reservation Application
Rewriting an Application
The Original Application
Evaluations
Improvements Overview
Our New Code Setup
Validation
Dealing with the Asynchronous Calls
Advantages of Our Functional Approach
Summary: Rewriting an Application
Coding Challenge: Writing Function Using Switch
Solution Review: Writing Function Using Switch
Quiz Yourself on the Application
Advanced FP Techniques
Domain-Specific Language
Tagless Final
Free Monads
Executable and Declarative Encoding and Algebraic Design
Summary: Advanced FP Techniques
Coding Challenge: Create a Mini DSL
Solution Review: Create a Mini DSL
Quiz Yourself on Advanced FP Techniques
Conclusion
Closing Thoughts
Appendix
Additional Concepts
Solution Review: Create a Mini DSL
Learn to create a mini DSL.
We'll cover the following
Solution
Explanation
Solution
Get hands-on with 1400+ tech skills courses.
Start Free Trial