The repository to practice functional programming with Javascript.
Currying: Currying simply means evaluating functions with multiple arguments and decomposing them into a sequence of functions with a single argument.
Closure: A closure is a function having access to the parent scope, even after the parent function has closed.
Hoisting: JavaScript Hoisting refers to the process whereby the interpreter appears to move the declaration of functions, variables or classes to the top of their scope, prior to execution of the code. Hoisting allows functions to be safely used in code before they are declared.
- Immutability
- Disciplined state
- Pure functions and no side effects/disciplined states
- First class functions and high order functions
- Type systems
- Referential transparency
- console.assert(false condition, "message")
- console.dir(): used for dom element
- console.log({object})
- console.table(map): used for object, map
- console.time - console.endTime: time measurement
- https://subscription.packtpub.com/book/application-development/9781786461483/1/ch01lvl1sec8/principles-of-functional-programming#:~:text=FP%20is%20a%20way%20of,of%20constructing%20and%20building%20programs.&text=FP%20favors%20disciplined%20state%20management,Java%2C%20Python%2C%20and%20Ruby
- https://www.freecodecamp.org/news/the-principles-of-functional-programming/
- https://www.freecodecamp.org/news/learn-the-fundamentals-of-functional-programming/
- https://blog.bitsrc.io/a-beginners-guide-to-closures-in-javascript-97d372284dda#:~:text=Every%20time%20the%20JavaScript%20engine,that%20holds%20identifier%2Dvariable%20mapping