a style of building the structure and elements of computer programs — that treats computation as the evaluation of mathematical functions and avoids changing-state and mutable data
What is a pure function and how do we know if something is a pure function?
It returns the same result if given the same arguments, It does not cause any observable side effects
What are the benefits of a pure function?
easier to test, no need to mock?,
What is immutability?
unchanging over time, or unable to be changed
What is Referential transparency?
f a function consistently yields the same result for the same input