This document discusses functional programming and immutable data. It defines functional programming as a paradigm that uses mathematical functions and avoids changing state/mutable data. It describes mathematical functions as always returning the same result regardless of how many times called. It contrasts imperative programming which is about "how" with functional programming which is about "what". It also discusses high-order functions, lazy evaluation, and examples like map, reduce and filter functions. It defines immutable data as unchanging values like constants, compared to mutable data like variables. The document advocates for immutable data and functional programming as an approach that simplifies debugging, testing and improves performance.
2. Functional programming
Functional programming is a programming paradigm
that treats computation as the evaluation of
mathematical functions and avoids changing-state
and mutable data.
37. You win a powerful approach for
improve performance
38. Memoization
In computing, memoization is an optimization
technique used primarily to speed up computer
programs by storing the results of expensive function
calls and returning the cached result