{"product_id":"beginning-functional-javascript-9781484240861","title":"Beginning Functional JavaScript","description":"\u003cb\u003eBook Synopsis\u003c\/b\u003e\u003cbr\u003e\u003cp\u003eUnderstand functional programming concepts and the functional nature of the JavaScript language. Starting with an introduction to functional programming concepts, you will learn the key differences between imperative and functional programming. Diving straight into JavaScript functions, you will learn to write them with ES8. Followed by this you will move to higher order functions and learn how ''Function as Data'' opens up a world of possibilities. \u003c\/p\u003e\u003cp\u003eYou will then build higher order functions with closures. Arrays will then be introduced, followed by a set of APIs you can use with them. You will learn how to transform one function to another using currying and partial application. The compose function will be discussed in detail, followed by functors and monads. After having an in-depth look at applicative functors, you will learn the new features offered in ES8. \u003c\/p\u003e\u003cp\u003eThe concluding chapters of \u003ci\u003eBeginning Functional JavaScript\u003c\/i\u003e will show you how to use a funct\u003cbr\u003e\u003cbr\u003e\u003cb\u003eTable of Contents\u003c\/b\u003e\u003cbr\u003e\u003cb\u003eChapter 1: Functional Programming In Simple Terms \u003c\/b\u003e\u003c\/p\u003e\u003cp\u003e\u003cb\u003eChapter Goal: \u003c\/b\u003eIntroduce to the reader the functional programming concepts in simple terms. The chapter will consist of theory and few executable JavaScript code both in imperative terms and functional terms, thus showcasing the advantages of functional programming over imperative. \u003c\/p\u003e  \u003cp\u003e\u003cb\u003eNo of pages\u003c\/b\u003e         : 25\u003c\/p\u003e  \u003cp\u003e\u003cb\u003eSub -Topics\u003c\/b\u003e\u003c\/p\u003e  \u003cp\u003e1.     What is functional programming? Why it matters?\u003c\/p\u003e  \u003cp\u003e2.     Functional programming thought process and its advantages.\u003c\/p\u003e  \u003cp\u003e3.     Talking about side effects\u003c\/p\u003e  \u003cp\u003e4.     Functions in Math and in programming\u003c\/p\u003e  \u003cp\u003e5.     Immutability leads to parallel code\u003c\/p\u003e  \u003cp\u003e6.     Testable\u003c\/p\u003e  \u003cp\u003e7.     Easy to reason about your code.\u003c\/p\u003e  \u003cp\u003e8.     Lets understand functions in JavaScript\u003c\/p\u003e  \u003cp\u003e9.     What we are going to build in this book?\u003c\/p\u003e\u003cb\u003e  Chapter 2:  Fundamentals of JavaScript functions \u003c\/b\u003e\u003cp\u003e\u003cb\u003eChapter Goal: \u003c\/b\u003eThis chapter is a refresher on JavaScript functions. What they are and how they can be written in ES7\/ES8 \u003c\/p\u003e  \u003cp\u003e\u003cb\u003eNo of pages\u003c\/b\u003e: 20\u003cb\u003e\u003c\/b\u003e\u003c\/p\u003e  \u003cp\u003e\u003cb\u003eSub - Topics\u003c\/b\u003e        \u003c\/p\u003e  \u003cp\u003e1.     JavaScript Functions\u003c\/p\u003e  2.     Functions vs Methods in JavaScript\u003cp\u003e\u003c\/p\u003e  \u003cp\u003e3.     Functions old way and ES6 way\u003c\/p\u003e  \u003cp\u003e4.     Anonymous functions or arrow functions \u003c\/p\u003e  \u003cp\u003e5.     Deep Dive. Functions Prototype. \u003c\/p\u003e\u003cb\u003e  Chapter 3:  Higher Order Functions\u003c\/b\u003e\u003cp\u003e\u003cb\u003eChapter Goal: \u003c\/b\u003eIn 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. \u003c\/p\u003e  \u003cp\u003e\u003cb\u003eNo of pages\u003c\/b\u003e: 20\u003cb\u003e\u003c\/b\u003e\u003c\/p\u003e  \u003cp\u003e\u003cb\u003eSub - Topics:\u003c\/b\u003e        \u003c\/p\u003e  \u003cp\u003e1.     Data in JavaScript\u003c\/p\u003e  \u003cp\u003e2.     Functions as Data in JavaScript\u003c\/p\u003e  \u003cp\u003e3.  Higher order functions\u003c\/p\u003e  \u003cp\u003e3.     Our first functional approach to “loop” problem\u003c\/p\u003e\u003cb\u003e  Chapter 4:  Closures \u003c\/b\u003e\u003cb\u003e\u003cbr\u003e\u003c\/b\u003e\u003cb\u003e Chapter Goal: \u003c\/b\u003eThis chapter going to teach you the fundamentals of closures and how closures help to build higher order functions.\u003cp\u003e\u003c\/p\u003e  \u003cp\u003e\u003cb\u003eNo of pages\u003c\/b\u003e: 30\u003c\/p\u003e  \u003cp\u003e\u003cb\u003eSub - Topics: \u003c\/b\u003e\u003c\/p\u003e  \u003cp\u003e1. Understanding closures.\u003c\/p\u003e\u003cp\u003e2. How closures help in higher order functions\u003c\/p\u003e\u003cp\u003e3. Create functional libraries using the above approaches learned. \u003c\/p\u003e\u003cp\u003e4. Example problem and using the libraries that we created to show how functional programming helps them.\u003c\/p\u003e\u003cb\u003eChapter 5: Being Functional On Arrays\u003c\/b\u003e\u003cbr\u003e\u003cp\u003e\u003cb\u003eChapter Goal: \u003c\/b\u003eThis chapter introduces set of APIs’ that one can use on top of Arrays.  \u003c\/p\u003e  \u003cp\u003eNo of pages: 20\u003c\/p\u003e  \u003cp\u003e\u003cb\u003eSub - Topics: \u003c\/b\u003e\u003c\/p\u003e  \u003cp\u003e1. Arrays in JavaScript\u003c\/p\u003e\u003cp\u003e2. How to access arrays, delete, loop them etc\u003c\/p\u003e\u003cp\u003e3. Create functional libraries using the above approaches learned. \u003c\/p\u003e\u003cp\u003e4. Example problem and using the libraries that we created to show how functional programming helps them.\u003c\/p\u003e\u003cb\u003e  Chapter 6: Currying and Partial Application\u003c\/b\u003e\u003cp\u003e\u003cb\u003eChapter Goal: \u003c\/b\u003eIn this chapter we are going to see how and what is partial and currying is all about. \u003c\/p\u003e  \u003cp\u003e\u003cb\u003eNo of pages\u003c\/b\u003e: 20\u003c\/p\u003e  \u003cp\u003e\u003cb\u003eSub - Topics: \u003c\/b\u003e\u003c\/p\u003e  \u003cp\u003e1. What is composition?\u003c\/p\u003e\u003cp\u003e2. Unix philosophy – build small things well and good\u003c\/p\u003e\u003cp\u003e3. Creating composing function\u003c\/p\u003e\u003cp\u003e4. Currying leads to Composition. \u003c\/p\u003e\u003cp\u003e5. Pipelines\u003c\/p\u003e\u003cp\u003e6. Showing examples of how to use composition\u003c\/p\u003e\u003cp\u003e7. Category theory\u003c\/p\u003e\u003cb\u003eChapter 7: Composition and Pipeline \u003c\/b\u003e\u003cb\u003e\u003cbr\u003e\u003c\/b\u003e\u003cb\u003eChapter Goal: \u003c\/b\u003eIn this chapter we are going to discuss on how to compose our functions to build a larger functionality\u003cbr\u003e\u003cp\u003e\u003c\/p\u003e  \u003cp\u003e\u003cb\u003eNo of pages\u003c\/b\u003e: 20\u003c\/p\u003e  \u003cp\u003e\u003cb\u003eSub - Topics: \u003c\/b\u003e\u003c\/p\u003e1. Unix philosophy\u003cbr\u003e2. Creating our compose function\u003cbr\u003e3. What is pipeline being all about\u003cbr\u003e4. Debugging using tap function.\u003cbr\u003e\u003cb\u003e  Chapter 8: Fun with Functors\u003c\/b\u003e\u003cp\u003e\u003cb\u003eChapter Goal:  \u003c\/b\u003eIn this chapter we are going to discuss on what Functors are and how they will be useful to us.\u003c\/p\u003e  \u003cp\u003e\u003cb\u003eNo of pages\u003c\/b\u003e: 20\u003c\/p\u003e  \u003cp\u003e\u003cb\u003eSub - Topics: \u003c\/b\u003e\u003c\/p\u003e  \u003cp\u003e1. A bit of algebra\u003c\/p\u003e\u003cp\u003e2. Container Theory\u003c\/p\u003e\u003cp\u003e3. First Functor\u003c\/p\u003e\u003cp\u003e4. Adding Container functor code to our library\u003c\/p\u003e\u003cp\u003e5. Showing examples of how to use the functors\u003c\/p\u003e\u003cp\u003e6. Examples of MayBe and Either functors\u003c\/p\u003e\u003cb\u003eChapter 9: Monads In Depth\u003c\/b\u003e\u003cbr\u003e\u003cp\u003e\u003cb\u003eChapter Goal:  \u003c\/b\u003eIn this chapter we are going to talk about how to create monads into our functional library. \u003c\/p\u003e  \u003cp\u003e\u003cb\u003eNo of pages\u003c\/b\u003e: 20\u003c\/p\u003e  \u003cp\u003e\u003cb\u003eSub - Topics: \u003c\/b\u003e\u003c\/p\u003e  \u003cp\u003e1. Defining the problem \u003c\/p\u003e\u003cp\u003e2. Understanding nested map hell\u003c\/p\u003e\u003cp\u003e3. Implementing join and chain\u003c\/p\u003e\u003cp\u003e4. The use case of Monads.\u003c\/p\u003e  \u003cp\u003e\u003cb\u003eChapter 10\u003c\/b\u003e: \u003cb\u003eApplicative Functors \u003c\/b\u003e\u003cbr\u003e\u003c\/p\u003e  \u003cp\u003e\u003cb\u003eChapter Goal: \u003c\/b\u003eIn this chapter we are going to talk about applicative functors in depth and create them in our functional library. \u003c\/p\u003e  \u003cp\u003e\u003cb\u003eNo of pages\u003c\/b\u003e: 20\u003c\/p\u003e  \u003cp\u003e\u003cb\u003eSub \u003c\/b\u003e– \u003cb\u003eTopics\u003c\/b\u003e:\u003c\/p\u003e  \u003cp\u003e1.  What are applicative functors\u003c\/p\u003e\u003cp\u003e2. Their use cases\u003c\/p\u003e\u003cp\u003e3. Adding applicative to our library\u003c\/p\u003e\u003cp\u003e4. Their Laws\u003c\/p\u003e  \u003cp\u003e\u003cb\u003eChapter 11: \u003c\/b\u003e\u003cb\u003ePause, Resume with Generators\u003c\/b\u003e\u003c\/p\u003e  \u003cp\u003e\u003cb\u003eChapter Goal: \u003c\/b\u003eIn this chapter we are going to talk about new features of ES8 called generators. We are going to see how to use it wisely to make Async sync.\u003c\/p\u003e  \u003cp\u003e\u003cb\u003eNo of Pages\u003c\/b\u003e: 20\u003c\/p\u003e  \u003cb\u003eSub – Topics:\u003c\/b\u003e\u003cp\u003e\u003c\/p\u003e  \u003cp\u003e1. What are generators? \u003c\/p\u003e\u003cp\u003e2. Let’s create an indefinite lazy stream\u003c\/p\u003e\u003cp\u003e3. Generators and EventLoop\u003c\/p\u003e\u003cp\u003e4. Let’s understand Yield\u003c\/p\u003e\u003cp\u003e5. Making Async sync\u003c\/p\u003e\u003cp\u003e6. Adding the code to our library\u003c\/p\u003e\u003cp\u003e7. Showcasing examples. \u003c\/p\u003e\u003cp\u003e8. Async and Await, the new concepts of ES8! \u003c\/p\u003e  \u003cp\u003e\u003cb\u003eChapter 12: Building a React-like library\u003c\/b\u003e\u003c\/p\u003e\u003cp\u003e\u003cb\u003eChapter Goal : \u003c\/b\u003eIn this chapter, you will use a Functional Toolkit to build a small library. The library is used to build web applications with minimal efforts.\u003c\/p\u003e\u003cp\u003e\u003cb\u003eNo of Pages: \u003c\/b\u003e25\u003c\/p\u003e\u003cp\u003e\u003cb\u003eSub – Topics:\u003c\/b\u003e\u003c\/p\u003e\u003cp\u003e1. Defining the environment\u003c\/p\u003e\u003cp\u003e2. Using functions throughout the codebase\u003c\/p\u003e\u003cp\u003e3. Node APIs to speak with DOM\u003c\/p\u003e\u003cp\u003e4. JSX and how to convert to functional calls. \u003c\/p\u003e\u003cp\u003e5. Handling events\u003c\/p\u003e\u003cp\u003e6. Handling updates\u003c\/p\u003e\u003cp\u003e7. Recursion\u003c\/p\u003e\u003cp\u003e\u003cb\u003eChapter 13: Testing and Closing Thoughts\u003c\/b\u003e\u003c\/p\u003e\u003cp\u003e\u003cb\u003eChapter Goal:\u003c\/b\u003e In this chapter we are going to see how testing can be a walk in the park if you follow a functional approach and also look at key points to take away from the book.\u003c\/p\u003e\u003cp\u003e\u003cb\u003eNo of Pages: \u003c\/b\u003e10\u003c\/p\u003e\u003cp\u003e\u003cb\u003eSub – Topics:\u003c\/b\u003e\u003c\/p\u003e\u003cp\u003e1. Testing imperative Code\u003c\/p\u003e\u003cp\u003e2. Testing functional code\u003c\/p\u003e\u003cp\u003e3. Testing made easy via Functional\u003c\/p\u003e\u003cp\u003e4. Final thoughts\u003c\/p\u003e","brand":"APress","offers":[{"title":"Default Title","offer_id":48739663839575,"sku":"9781484240861","price":41.24,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9781484240861.jpg?v=1720052850","url":"https:\/\/bookcurl.com\/products\/beginning-functional-javascript-9781484240861","provider":"Book Curl","version":"1.0","type":"link"}