Hardcore Functional Programming in JavaScript, v2Introduction Introduction Mathematical, Pure Functions Pure Functions Checklist Pure Functions Advantages Currying Properties, Arguments & Currying Currying Example & Argument Order Ramda Generalized Currying Partial Application vs Currying Currying Exercises Currying Solutions Composition Composition Creating Programs with Curry & Compose Composition is Dot Chaining Logging in Composition Compose Practice Refactoring with Compose Refactoring to Point Free Style Functors Creating the Identity Functor Refactoring to Dot Chaining Functor Practices Adding Chain for Nested Functors Either Monad Either Monad fromNullable Refactoring Using the Either Monad Flattening Either Monads with Chain Adding Syntax vs Generalized Solutions Either Practices Debugging with Logging Task Task Monad Refactoring Node IO with Task Task Practices Transforms & Monad Patterns Inspecting the Weather API Separate Pure & Impure Code Creating a Weather Module Parsing Weather API Data into HTML Wrapping Up Wrapping Up