functional programming

functional programming is basically a style of building the structure and elements of computer programs. it treats computation as the evaluation of mathematical functions and avoids changing-state and mutable data

a pure function is something that returns the same resulty if given the same arguments (also called deterministic) we know if something is a pure function of it does not cause any observable side effects

the benefits of a pure function include: stable, consistent and predictable functions. given the same parameters, pure functions will always return the same result

immutability is best described when a data’s state cannot be changed after its created

referential transparency is when a function consistently yields the same result for the same input

pure functions + immutable data = referential transparency

node.js

a module is essentially any JS file that contributes to another file

the word require returns the exported data from what is being passed into the require function

let aVar = require('./pathToTheVar') will bring in another module into the file we are working in

module.exports = thingToExportFromFile will make the module available