
Beginning Functional JavaScript
Description
Learn functional programming concepts using JavaScript ES6. You will learn concepts such as currying, partial functions, higher-order functions, and monads.
Programming languages have evolved from focusing on procedures to objects and now on function. JavaScript supports functional programming and allows developers to write well-crafted code.
What You Will Learn:
- Master functional programming concepts
- Identify how functions are treated in JavaScript
- Understand real-world functional libraries and create a functional library that mimics underscore.js
- Perform pure-error handling techniques such as functors and monads
- Discover ES6 functional features such as spread operators and generators
Who This Book Is For:
JavaScript developers (or beginners) who want to understand functional programming concepts and the functional nature of the language.
More details
Other editions
New editions

Additional editions

Person
Content
Chapter Goal: Introduce to the reader the functional programming concepts in simple English terms. The chapter is supposed to consist of theory and few executable Javascript code both in imperative terms and functional terms, thus showcasing the advantages of functional programming over imperative.
No of pages : 25
Sub -Topics
1. What is functional programming? Why it matters?
2. Functional programming thought process and its advantages.
1. Talking about side effects
2. Functions in Math and in programming
3. Immutability leads to parallel code
4. Testable
5. Easy to reason about your code.
3. Lets understand functions in Javascript
4. What we are going to build in this book?
Chapter 2: Fundamentals of Javascript functionsChapter Goal: This chapter is sort of refresher on Javascript functions. What they are and how they can be written in es6 world etc.
No of pages: 20
Sub - Topics
1. Javascript Functions
2. Functions vs Methods in Javascript
3. Functions old way and ES6 way
4. Anonymous functions or arrow functions
5. Deep Dive. Functions Prototype.
Chapter 3: Functions === Data.Chapter Goal: In this chapter we are going give a different thought process on how functions are treated as data in Javascript world. We will be covering what is data and how function as data allows several things possible in Javascript.
No of pages: 20
Sub - Topics:
1. Datas in Javascript
2. Functions as Data in Javascript
3. Higher order functions
3. Our first functional approach to "loop" problem
Chapter 4: ArraysChapter Goal: This chapter is going to create lot of functional libraries for the Arrays. The chapter explains the importance of Arrays as collections in Javascript,
No of pages: 30
Sub - Topics:
1. Arrays in Javascript
2. How to access arrays, delete, loop them etc
3. Create functional libraries using the above approaches learned.
4. Example problem and using the libraries that we created to show how functional programming helps them.
Chapter 5: Closures and Currying
Chapter Goal: This chapter introduces yet another important concepts in Javascript called closures.
No of pages: 20
Sub - Topics:
1. What all functions can see?
2. Remembering where you born.
3. Introducing Closures.
4. Using closures create a in built bind function
5. Introduce Currrying with that created function
6. Use closures create functions and add it to our functional lib
7. Show examples of the above created functions.
8. Are closures impure?
Chapter 6: Composition and PipelinesChapter Goal: In this chapter we are going to see how and what is compostion.
No of pages: 20
Sub - Topics:
1. What is compostion?
2. Unix philoshophy - build small things well and good
3. Creating composing function
4. Currying leads to Composition.
5. Pipelines6. Showing examples of how to use composition
7. Category theory
Chapter 7: Functors Chapter Goal: In this chapter we are going to discuss on what Functors are and how they will be useful to us.
No of pages: 20
Sub - Topics:
1. A bit of algebra2. Container Theory
3. First Functor
4. Adding Container functor code to our library
5. Showing examples of how to use the functors
Chapter 8: MayBe And Either Functors
Chapter Goal: In this chapter we are going to talk about these two functors in depth and create them in our functional library.
No of pages: 20
Sub - Topics:
1. Handling error handling in functional world
2. Introducing MayBe functors
3. Adding functors to our library
4. Showing examples
5. Introducing Either Functors
6. Adding Either functors to our library
7. Showing examples
8. Real world functors.9. Other functors I/O , Promise and giving exercises.
Chapter 9: Applicative Functors
Chapter Goal: In this chapter we are going to talk about applicative functors in depth and create them in our functional library.
No of pages: 20
Sub - Topics:
1. What are applicative functors
2. Their use cases
3. Adding applicative to our library
4. Their Laws
Chapter 10: Lets be functional about Generators
Chapter Goal: In this chapter we are going to talk about new features of ES6 called generators. We are going to see how to use it wisely to make async sync.
No of pages: 20
Sub - Topics:
1. What are generators?
2. Lets create an indefinite lazy stream
3. Generators and EventLoop
4. Lets understand Yield
5. Making Async sync
6. Adding the code to our library
7. Showcasing examples.
Chapter 11: Testing and Closing Thoughts
Chapter Goal: In this chapter we are going to see how testing is easy if we follow functional concepts and final thoughts
No of Pages: 10
Sub - Topics:1. Testing imperative Code
2. Testing functional code
3. Testing made easy via Functional
4. Final thoughts
Few Sections:
I want to add these sections as well, for now noting them down in the draft so that I can fit them where they are needed.
· Tail Call optimization
· Recursion
· Functional code can allow you to memorize the result
· Cacheable Code is allowed in Functional code base