Functional programming is a programming paradigm that treats computation as the evaluation of mathematical functions, avoiding changes of state and mutable data. The main idea of functional programming is...